#!/usr/bin/perl use strict; use warnings; use MIME::Lite; #这个用来组织邮件信息内容 use Pod::Usage; use Getopt::Long; use MIME::Base64; use MIME::Words qw/:all/; use Authen::SASL; my $options = { ??????? from??? => 'bot', }; GetOptions( $options, ??????????? 'help|?',?????? # 帮助 ??????????? 'html!',??????? # HTML 邮件支持 ??????????? 'subject=s',??? # 邮件标题 ??????????? 'from=s',?????? # 发件人 ??????????? 'to=s',???????? # 收件人 ??????????? 'cc=s',???????? # 抄送 ???????????,# 附件 ??????? ) or pod2usage(); pod2usage() if $options->{help}; pod2usage() unless $options->{subject} and $options->{to}; my $cc?? = $options->{cc} || ''; my $lines = <>; #$lines=encode_base64("$lines",''); # 邮件服务器的连接信息 MIME::Lite->send("smtp","smtp.163.com",AuthUser=>‘myusername',AuthPass=>'******',Debug => 0,Timeout => 60); # 组织邮件信息内容 my $msg = MIME::Lite->new( ??????????????? From => $options->{from}, ??????????????? To => $options->{to}, ??????????????? cc => $cc, ??????????????? Subject => encode_mimeword($options->{subject},'b','utf-8'), ??????????????? #Subject => $options->{subject}, ??????????????? #Subject => '=?utf-8?B?'.encode_base64("$options->{subject}").'?=', ??????????????? Type => 'multipart/mixed' ??????????????? ); if (not $options->{html} ){ ??? $msg->attach(??? ??????????? Encoding =>'base64', ??????????? Type =>'text/plain;charset=utf-8', ??????????? Data => $lines ??????????? ); ???? }else{ ??? $msg->attach( ??????????? Encoding =>'Base64', ??????????? Type =>'text/html; charset=utf-8', ??????????? Data => $lines ??????????? ); } ### attach: $options->{attach} for ( 0 .. $#{$options->{attach}} ) { ??? $msg->attach( ?????????? Type =>'auto',#建议设置成auto要不就application/octet-stream ?????????? Path => $options->{attach}[$_],? ?????????? Encoding => 'Base64', ?????????? Disposition => 'attachment' ?????????? ); } print STDERR "正在发送.......n";? $msg->send() or die "Couldn't send whole message: $!n"; __END__ =head1 NAME sendMail - 发送邮件 =head1 SYNOPSIS sendMail [选项] [正文文件名] 正文文件名省略时,邮件正文来自标准输入 选项: ??? --help????????????????? 显示帮助信息 ??? --subject?????????????? 邮件标题 ??? --from????????????????? 发件人 ??? --to??????????????????? 收件人 ??? --cc??????????????????? 抄送 ??? --html????????????????? 发送 HTML 格式邮件 ??? --attach??????????????? 发送附件 调用方法: echo "aaaaa你好---"|perl demo.pl --subject hello --from --to --attach /home/a.zip |