Sorry, no attachment allowed ;-) Here is the listing:
#!/usr/bin/perl -w ############################################################################## # Owner : Walter Laub (wla) # # # # Name : smtp_send.pl # # Intention : send mail using SMTP # # Require : perl # # # # 15.10.07 wla : created # # v1.00, 15.10.07 : first version # # v1.01, 18.10.07 : improvements # ############################################################################## # # my $MyVersion="1.01"; # # ############################################################################## use strict; use Net::SMTP; use Net::Domain qw(hostname hostfqdn hostdomain); use Getopt::Long; my %opt=(); my ($subject,$receiver,$sender,$message,$relay,$verbose,$zeile,$istty); my @receivers; my $smtp; $istty=-t STDIN; # assign input parameters &GetOptions(\%opt, 'h|help', 's|subject=s', 'c|to=s', 'r|from=s', 'm|message=s', 'relay=s', 'v', ) or &printusage and exit; # check if help needed if ( defined $opt{h} || ! defined $opt{c} ) { &printusage; exit; } if ( ! defined $opt{relay} ) { if ( ! defined $ENV{RELAY_MAILER} && ! defined $ENV{SMART_HOST} && ! defined $ENV{RELAY_HOST} ) { &printusage; exit; } else { $opt{relay}=$ENV{RELAY_MAILER} if defined $ENV{RELAY_MAILER}; $opt{relay}=$ENV{SMART_HOST} if defined $ENV{SMART_HOST}; $opt{relay}=$ENV{RELAY_HOST} if defined $ENV{RELAY_HOST}; } } if ( defined $opt{s} ) { $subject=$opt{s}; } else { $subject=" "; } $receiver=$opt{c}; if ( defined $opt{r} ) { $sender=$opt{r}; } else { $sender=$ENV{USERNAME} if defined $ENV{USERNAME}; # MS $sender=$ENV{LOGNAME} if defined $ENV{LOGNAME}; # Unix $sender=$sender . '@' . hostfqdn(); } if ( defined $opt{m} ) { $message=$opt{m}; } else { if ($istty) { print "Enter your message. Complete with: Unix/Linux: CTRL-D, Windows: CTRL-Z-RETURN\n"; } while( $zeile = <> ) { $message=$message . $zeile; } } $message=" " if not defined $message; $relay=$opt{relay}; $_=$receiver; s/,/ /; @receivers=split / /, $_; foreach (@receivers) { if ( defined $opt{v} ) { $smtp = Net::SMTP-> new($relay, Timeout => 30, Debug => 1,); } else { $smtp = Net::SMTP-> new($relay, Timeout => 30); } $smtp-> mail($sender); $smtp-> to($_); $smtp-> data(); $smtp-> datasend("Subject: $subject\n"); $smtp-> datasend("To: $_\n"); $smtp-> datasend("From: $sender\n"); $smtp-> datasend("\n"); $smtp-> datasend("$message\n"); $smtp-> dataend(); $smtp-> quit; } sub printusage { # like a manpage print "\n"; print " NAME\n"; print " smtp_send.pl - send mail using SMTP\n"; print "\n"; print " SYNTAX\n"; print " smtp_send.pl [-s subject]\n"; print " [-c receiver]\n"; print " [-r sender]\n"; print " [-m message]\n"; print " [-relay relay]\n"; print " [-h]\n"; print "\n"; print " DESCRIPTION\n"; print " This script send messages trough the SMTP protocol.\n"; print " A receiver and relay host is needed.\n"; print " Example: smtp_send.pl -c [EMAIL PROTECTED] -relay relayserver.domain\n"; print " Reading from a pipe is also supported:\n"; print " Example: Windows: echo my message | perl smtp_send.pl ...... \n"; print " Unix: echo \"my message\" | smtp_send.pl ...... \n"; print "\n"; print " OPTIONS\n"; print " -s Specifies a subject for the message\n"; print "\n"; print " -c Specifies the list of users to which the message is send.\n"; print " When specifying more than one address, the list of addresses\n"; print " must be in \"\" qotes.\n"; print "\n"; print " -r Specifies the sender of the message\n"; print "\n"; print " -m The message. If not specified, the message is read from STDIN.\n"; print " Type CTRL-D (Unix), CTRL-Z-RETURN (Windows) at end of message.\n"; print "\n"; print " -relay The relay host. If not specified, the variables RELAY_MAILER,\n"; print " SMART_HOST, RELAY_HOST are checked\n"; print "\n"; print " -h This text.\n"; print "\n"; }
_______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs