# # EDVMAIL 0.2 # use warnings; use strict; use Mail::Sender; use File::Slurp; use Getopt::Attribute; use Getopt::ArgvFile; our $to : Getopt(an=s); our $from : Getopt(absender=s EDV); our $subject : Getopt(betreff=s); our $password : Getopt(passwort=s xxxx); our $mode : Getopt(modus=s html); our @cc : Getopt(cc=s); our @mailfiles : Getopt(dateien=s); our @attachments : Getopt(attachments=s); our @lines : Getopt(zeilen=s); die "Kein Adressat angegeben!\n" . usage() unless defined $to; die "Kein Betreff angegeben!\n" . usage() unless defined $subject; die "Keine Nachricht angegeben!\n" . usage() unless (@mailfiles or @lines); my ($br, $ctype); if ( $mode =~ /html/i ) { $br = "
"; $ctype = "text/html"; } else { $br = ""; $ctype = "text/plain"; } my $sender = new Mail::Sender { smtp => '192.168.1.23', from => "$from\@kvsaarland.de", authid => $from, authpwd => $password, } or die "Mail::Sender Objekt kann nicht erstellt werden: $Mail::Sender::Error\n"; $sender->OpenMultipart ({ to => $to, subject => $subject, cc => [@cc], boundary => "" }); $sender->Body({ encoding => 'ISO-8859-1', ctype=>$ctype }); $sender->Send('') if $br; if ( @lines ) { $sender->Send ( map { chomp; "$_$br\n" } @lines ) or die "$Mail::Sender::Error\n"; } if ( @mailfiles ) { $sender->Send ( map { map { chomp; "$_$br\n" } read_file ($_) } @mailfiles ) or die "$Mail::Sender::Error\n"; } $sender->Send('') if $br; if ( @attachments ) { $sender->Send ( "$br\n" x 2 ), $sender->Attach ( { file => $_ } ) for @attachments; } $sender->Close() or die "Nachricht kann nicht gesendet werden: $sender->{'error_msg'}\n"; print "Nachricht versendet.\n"; sub usage { return <<'USAGE'; edvmail.pl - 0.2 Aufruf: edvmail -parameter [wert] Parameter: -ab(sender) opt. Absender (ohne "@kvsaarland.de", default: EDV) -an erf. Empf„nger -cc * opt. Blindkopie -b(betreff) erf. Betreff -p(asswort) opt. Passwort, default "xxxx" -d(atei) * opt. Textdateien fr den Text der Mail -at(tachments) * opt. Anh„nge -z(eilen) * opt. Textzeilen -m(odus) opt. "text" or "html", default "html" Mit * gekennzeichnete Parameter können mehrfach angegeben werden. Beispiel: edvmail -ab m.holzer -an p.balfie@kvsaarland.de -cc m.taller@kvsaarland.de -b "Na ihr Luschen?" -z "Was Lustiges" -z "im Anhang" -at c:\witze.txt USAGE }