Hallo, ich benutze GMX's Fax Gateway um Faxe zu empfangen und diese landen dann in meiner inbox. Nun hätte ich gerne eine procmail-Regel, die mir das ausdrucken der ganzen Faxe erspart. Dazu müsste er aber den Anhang (TIF) extrahieren und durch lpr schicken.. Wie? Ich habe schonmal so angefangen: :0: * ^From: .*gmxfaxgate faxe Das soll ja auch so sein, nur weiss ich jetzt nicht, wie ich a) eine zweite Kopie erhalte und b) den Anhang extrahieren und durch lpr jagen kann. Kann mir da jemand helfen? Grüße Rene
On Thu, 22 Nov 2001, Rene Engelhard wrote:
Nun hätte ich gerne eine procmail-Regel, die mir das ausdrucken der ganzen Faxe erspart.
Dazu müsste er aber den Anhang (TIF) extrahieren und durch lpr schicken..
Wie?
Ich habe schonmal so angefangen:
:0: * ^From: .*gmxfaxgate faxe
Das soll ja auch so sein, nur weiss ich jetzt nicht, wie ich a) eine zweite Kopie erhalte und
RTFM: man 5 procmailrc: c Generate a carbon copy of this mail. Also: # Kopie ans script zum drucken :0 c * ^From:.*gmxfaxgate | faxmail2print.pl # und in die mbox faxe ablegen :0 * ^From:.*gmxfaxgate faxe Das geht aber auch so (siehe man 5 procmailex): :0 * ^From:.*gmxfaxgate { :0 c | faxmail2print.pl :0 faxe }
b) den Anhang extrahieren und durch lpr jagen kann.
Das geht z.B. mit Perl und MIME::Parser... ==== ACHTUNG! UNGETESTET! NUR ALS ANREGUNG ==== use strict; use MIME::Parser; use MIME::Body; my $parser = new MIME::Parser; my $entity = $parser->read(\*STDIN); for ( 1 .. $entity->parts() ) { if( $entity->parts($_)->is_multipart() ) { ## Rekursiv die Parts durchgehen/dekodieren } else { ## ein single-part if( $entity->parts($_)->effective_type() eq "image/tiff") { my $body = $entity->parts($_)->bodyhandle(); open(LPR, "| lpr -Plp0") or die "$!"; print LPR $body->as_string; } else { ## IRGENWAS ANDERES } } } ==== ACHTUNG! UNGETESTET! NUR ALS ANREGUNG ==== (siehe perldoc {MIME::Parser,MIME::Entity,MIME::Body} ) -dnh -- 150: SETI Es gibt sicher extraerrestrische Wesen. Daß keine bis jetzt mit Menschen in Kontakt getreten sind, beweist deren Intelligenz. (Michael Sohmen)
participants (2)
-
David Haller
-
Rene Engelhard