Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: flexible command line mail sender (SMTP)

by davidrw (Prior)
on Jun 23, 2005 at 11:33 UTC ( #469363=note: print w/replies, xml ) Need Help??

in reply to flexible command line mail sender (SMTP)

Looks handy (and a good sample for including in other programs the next time i need to kick off emails, especially with attachments).

One quick request though -- can you post (or make a usage_en() sub or in __END__ or in =pod) an english translation of the USAGE heredoc? thanks!
  • Comment on Re: flexible command line mail sender (SMTP)

Replies are listed 'Best First'.
Re^2: flexible command line mail sender (SMTP), English version
by holli (Abbot) on Jun 23, 2005 at 12:57 UTC
    Here's your english version:
    # # EDVMAIL 0.2 # use warnings; use strict; use Mail::Sender; use File::Slurp; use Getopt::Attribute; use Getopt::ArgvFile; our $to : Getopt(to=s); our $from : Getopt(from=s EDV); our $subject : Getopt(subject=s); our $password : Getopt(password=s xxxx); our $mode : Getopt(mode=s html); our @cc : Getopt(cc=s); our @mailfiles : Getopt(files=s); our @attachments : Getopt(attachments=s); our @lines : Getopt(lines=s); die "No recipient specified!\n" . usage() unless defined $to; die "No subject specified!\n" . usage() unless defined $subject; die "No message specified!\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 => '', from => "$from\", authid => $from, authpwd => $password, } or die "Cannot create Mail::Sender Object: $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="2pt">') 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 ($_) } @m +ailfiles ) 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 "Message not sent: $sender->{'error_msg'}\n"; print "Message sent.\n"; sub usage { return <<'USAGE'; - 0.2 Usage: edvmail -parameter [wert] Parameter: -fr(om) opt. Author (without "@domain", default: EDV) -to req. Recipient -cc * opt. CC-Adresses -s(ubject) req. subject -p(assword) opt. Password, default "xxxx" -fi(les) * opt. Textfiles that build the text for the Mail -a(ttachments) * opt. Well, attachments. -l(ines) * opt. Text of the mail -m(ode) opt. "text" or "html", default "html" Parameters with * can me specified multiple times. Example: edvmail -fr m.holzer -to -cc m.taller@kvsaarla -s "How ya doin'?" -l "Something funny" -l "in the attachment +" -a c:\jokes.txt USAGE }

    holli, /regexed monk/

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://469363]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2023-01-31 00:39 GMT
Find Nodes?
    Voting Booth?

    No recent polls found