脚本发邮件的几种方法 z



(1)mail和sendmail就不说了,man一下
(2)Perl调用sendmail:

#mysendmail.pl

open (SENDMAIL, "|/usr/sbin/sendmail -oi -f linewer/@localhost.localdomain -t") or die "Can't fork for sendmail: $!/n";
print SENDMAIL <<"EOF";
From: <linewer/@localhost.localdomain>
To: <gx2008758/@gmail.com>
Subject: "MailFrom perl"
"just test it"
EOF
close (SENDMAIL) or warn "sendmail did not close nicely";

(3).perl模块:

use MIME::Lite;  #这个用来组织邮件信息,发信的是用下面模块!
use Net::SMTP;   
use Net::SMTP::SSL;
$FROM='gx2008758@sohu.com';
$TO='gx2008758@gmail.com';
$subject='From Perl Module';
$SMTPUSER='gx2008758@sohu.com';
$SMTPPASS='youguessit';
$message_text='testing again';
 
my $msg = MIME::Lite->new(From => $FROM,To => $TO,Subject => $subject,Type => 'multipart/alternative');
$msg->attach(Encoding =>'quoted-printable',Type =>'text/plain;charset=UTF-8',Data => $message_text);
$msg->attach(Encoding =>'base64',Type =>'image/jpeg',Filename => '1.jpg',Path => '../1.jpg', Disposition => 'attachment');
#for no starttls mail server:sohu

my $smtp = Net::SMTP->new('smtp.sohu.com',Timeout => 60, Debug => 1) or die "new error/n";
#for starttls mail server:gmail
#my $smtp=Net::SMTP::SSL->new('smtp.gmail.com',Port=>465,Timeout => 60, Debug => 1) or die "new error/n";

$smtp->auth($SMTPUSER, $SMTPPASS);
$smtp->mail($FROM);
$smtp->to($TO);
$smtp->data($msg);
$smtp->quit;

(4).python调用sendmail:
import os

def email(subject,content,sender='localhost',receiver='me'):
    mail_body="""From:%s
To:%s
Mime-Version: 1.0
Content-Type: text/html;charset=utf8
Subject:%s
%s"
"" % (sender,receiver,subject,content)
    cmd='echo "%s"|/usr/sbin/sendmail -t' % (mail_body)
    os.system(cmd)
if __name__=="__main__" :
   email('Hi,From Python','Just test it','gg','gx2008758@gmail.com')


(5).python模块:
def send_mail(send_from, send_to, subject, text,auth=(), send_server='localhost'):
    msg = email.MIMEMultipart.MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = email.Utils.COMMASPACE.join(send_to)
    msg['Date'] = email.Utils.formatdate(localtime=True)
    msg['Subject'] = email.Header.Header(subject,'utf-8')
    msg.attach(email.MIMEText.MIMEText(text,_subtype='plain',_charset='utf-8'))    
    
    smtp = smtplib.SMTP(send_server)
    #the two lines below are neccessary to
    smtp.docmd("EHLO server" )
    smtp.starttls()
    smtp.login(*auth)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()


ps:sendmail发现有时会有延迟,这个要改下senmail设置,MS是关于域名解析的问题,记不清了~~

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值