sourcecode
holli
<code>
#
# 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 = "<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('<font face="Arial" size="2">')
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('</font>')
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
}
</code>
A Simple tool to send mails from the command line via a smptp server.
E-Mail Programs
[holli]