#!/usr/bin/perl
=pod #send email common script #Angelo - 2008/10/06 ttachment] #EmailServer - emailserver. #port - listening port, default is 25 uard.com.set "" if no to-sendee uard.com.set "" if no cc-sendee #Subject - subject of your email,string.set "" if no subject. r. #Attachment- full path of attachement,seperated by ",".# Revision History
# Will Yi - 2011/12/30 - Added a command line argument to specify the debug level for send() =cut use MIME::Lite; use strict; #my $reportserver = 'ex01bd.bdc.wgti.net'; #my $port = '25'; #my $fromaddress = 'local.test'; #my $reporttoaddress = ;if ((scalar @ARGV) < 5 || (scalar @ARGV) > 9) {
&usage; exit -1; } my $reportserver = $ARGV[0]; my $port = $ARGV[1]; my $fromaddress = $ARGV[2]; my $reporttoaddress = $ARGV[3]; my $encode_type = $ARGV[4]; if ((scalar @ARGV) < 5 || (scalar @ARGV) > 9) { &usage; exit -1; if ((scalar @ARGV) < 5 || (scalar @ARGV) > 9) { &usage; exit -1; my $subject = 'automation_test'; my $body = 'automation test'; my $p_w_upload = ''; my @attachlist; if ($ARGV[5]) { $subject = $ARGV[5]; if ($ARGV[5]) { $subject = $ARGV[5]; } if ($ARGV[5]) { $subject = $ARGV[5]; } $body = $ARGV[6]; if ($ARGV[6]) { $body = $ARGV[6]; if ($ARGV[6]) { $body = $ARGV[6]; } if ($ARGV[7]) { $p_w_upload = $ARGV[7]; if ($ARGV[7]) { $p_w_upload = $ARGV[7]; if ($ARGV[7]) { $p_w_upload = $ARGV[7]; } if ($ARGV[8]) { $debug_level = $ARGV[8]; # 0-disable; 1-verbose if ($ARGV[8]) { $debug_level = $ARGV[8]; # 0-disable; 1-verbose } if ($ARGV[8]) { $debug_level = $ARGV[8]; # 0-disable; 1-verboseif (!($p_w_upload eq '')) {
@attachlist = split(',',$p_w_upload); foreach my $eachattach (@attachlist) { -e $eachattach or die "$eachattach doesn't exists.\n"; } } } my $msg = MIME::Lite->new( From => $fromaddress, To => $reporttoaddress, Subject => $subject, Type => 'multipart/mixed', Encoding => $encode_type, ); ); $msg->attach( #Type => 'AUTO', Data => $body, $msg->attach( #Type => 'AUTO', Data => $body, ); $msg->attach( #Type => 'AUTO', Data => $body, ); if (!($p_w_upload eq '')) { foreach my $eachattach (@attachlist) { $msg->attach( Path => $eachattach, Type => 'AUTO', Disposition => 'p_w_upload' ); } } } $msg->send('smtp',$reportserver, Debug=>$debug_level, Port => $port);.\n";
print "EmailServer\t- emailserver address.\n"; d.com,yyy\@watchguard.com.set \"\" if no to-sendee.\n"; print "EncodeType\t- should be 7bit/8bit/binary\n"; st one char.\n"; t, default is 1\n"; return 0;
使用方法如下: perl send_common_email.pl ?
Usage: send_common_email.pl <EmailServer> <port> <FromAddress> <ToAddress> <encode_type> [Subject] [Body] [Attachment] [Debug Level]. eg. send_common_email.pl ex01bd.bdc.wgti.net . EmailServer - emailserver address. FromAddress - "From" address ToAddress - "to" address,seperated by "," if you have muti-sendee,eg: "" if no to-sendee. EncodeType - should be 7bit/8bit/binary Subject - subject of your email,string.set "" if no subject. Body - context of your email,it can be a string or a exist-file.can not be "".at least one char. Attachment - full path of attachement,seperated by ",". DebugLevel - Set the debug level when sending mail. Value 1-verbose,0-disable. If not set, default is 1