Hi, ich möchte mir ein Perl-Script schreiben, welches Mails weiterverarbeitet. Dazu habe ich in aliases folgenden Eintrag gemacht: mail2script: "|/home/test/mail2script.cgi" Das Script wird auch ausgeführt, allerdings kann ich dass, was übergeben wird nicht auslesen. Weiss jemand, wie ich in Perl das übergebene auslesen kann? Es geht nicht mit $ENV{'QUERY_STRING'}, param() und @ARGV. MFG Stephan
* On Sat, 13 Jul 2002 at 22:52 +0200, Stephan Pienitz wrote:
ich möchte mir ein Perl-Script schreiben, welches Mails weiterverarbeitet.
Dazu habe ich in aliases folgenden Eintrag gemacht:
mail2script: "|/home/test/mail2script.cgi"
Das Script wird auch ausgeführt, allerdings kann ich dass, was übergeben wird nicht auslesen.
Weiss jemand, wie ich in Perl das übergebene auslesen kann?
Es geht nicht mit $ENV{'QUERY_STRING'}, param() und @ARGV.
Das kommt auf der Standardeingabe daher. -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at
Moin, Stephan Pienitz:
bin relativer Newbie, wie lese ich die Standardeingabe denn aus? Wenn du in perl auf einen grünen Zweig kommen willst (soweit das mit einem menschlichen Gehirn möglich ist :-) ), solltest du dich generell mit der Doku vertraut machen, sonst bist du verraten, verlassen und verkauft.
Die Doku gibt es auch in HTML, kann man prima nebenher aufmachen. Das Öffnen und Schliessen von Dateien (, pipes, Geräten, ...) ist in "perlopentut" erklärt, beachte im speziellen <STDIN>. Gruß, Ratti -- http://www.gesindel.de/neu/ | Fontlinge | Die Schriftenverwaltung für LINUX
Hallo Stephan, * Stephan Pienitz [13.07.02 22:57]:
bin relativer Newbie, wie lese ich die Standardeingabe denn aus?
print "Wie heisst Du: "; $name = <STDIN>; chomp($name); print "Hallo $name.\n"; HTH, Andreas -- Last Exit autoexec.bac: echo y | format c:
Hallo, On Sat, 13 Jul 2002, Stephan Pienitz wrote:
ich möchte mir ein Perl-Script schreiben, welches Mails weiterverarbeitet.
Dazu habe ich in aliases folgenden Eintrag gemacht:
mail2script: "|/home/test/mail2script.cgi"
Das Script wird auch ausgeführt, allerdings kann ich dass, was übergeben wird nicht auslesen.
Weiss jemand, wie ich in Perl das übergebene auslesen kann?
Es geht nicht mit $ENV{'QUERY_STRING'}, param() und @ARGV.
Die Mail kommt via stdin rein (und hat mit CGI genau gar nix zu tun ;) Kleines Beispiel aus nem script (stark gekuerzt), dass ich via procmail mit bestimmten Mails fuettere, die Mails auseinander- pfriemelt (sind mehrteilige) und dann einen Teil davon in ne DB stopft... ==== #!/usr/bin/perl -w use MIME::Parser; use MIME::Body; my $entity; my $parser = new MIME::Parser; sub parse_mail { my @lines; my $file; my $csv_part = $entity->parts(1); ### den gesuchten Teil verarbeiten ... } ### ... mehr subs ... ### main if ($#ARGV < 0) { $entity = $parser->read(\*STDIN) or die "couldn't parse MIME stream"; &parse_mail; } else { /* ... (lese aus Dateien) ... */ } ==== -dnh -- 172: Internet Das längste Kabel der Welt. (Lutz Frommberger)
On Sat, 13 Jul 2002 at 22:52 (+0200), Stephan Pienitz wrote:
ich möchte mir ein Perl-Script schreiben, welches Mails weiterverarbeitet.
Dazu habe ich in aliases folgenden Eintrag gemacht:
mail2script: "|/home/test/mail2script.cgi"
Das Script wird auch ausgeführt, allerdings kann ich dass, was übergeben wird nicht auslesen.
Weiss jemand, wie ich in Perl das übergebene auslesen kann?
Es geht nicht mit $ENV{'QUERY_STRING'}, param() und @ARGV.
Die Standardeingabe auslesen, z. B. mit while (<>) { print; } Gruß, Bernhard -- __________http://www.bwalle.de__________________________________________________ "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat." -- Winston Churchill
participants (6)
-
Adalbert Michelic
-
Andreas Kneib
-
Bernhard Walle
-
David Haller
-
Ratti
-
Stephan Pienitz