简单的python smtp发邮件代码

写了一个服务器的监控程序,里面用到邮件提醒功能。python sample code里面没有认证的部分,于是查了文档,google了一下,下了如下的smtp发送邮件的函数,支持smtp验证。代码如下:
[code lang=”python” linenum=”off”]#!/usr/bin/env python
# -*- coding: gbk -*-
#导入smtplib和MIMEText
import smtplib
from email.mime.text import MIMEText
#############
#要发给谁,这里发给2个人
mailto_list=[“aaa@juyimeng.com”,”bbb@juyimeng.com”]
#####################
#设置服务器,用户名、口令以及邮箱的后缀
mail_host=”smtp.126.com”
mail_user=”xxx”
mail_pass=”yyy”
mail_postfix=”126.com”
######################
def send_mail(to_list,sub,content):
”’
to_list:发给谁
sub:主题
content:内容
send_mail(“aaa@126.com”,”sub”,”content”)
”’
me=mail_user+”<"+mail_user+"@"+mail_postfix+">”
msg = MIMEText(content)
msg[‘Subject’] = sub
msg[‘From’] = me
msg[‘To’] = “;”.join(to_list)
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me, to_list, msg.as_string())
s.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == ‘__main__’:
if send_mail(mailto_list,”subject”,”content”):
print “发送成功”
else:
print “发送失败”[/code]
有问题请指教

20 条评论

  1. 试了一下,关于这个在网页版的邮件系统中文是没问题的,但是在客户端就会有问题,比如foxmail等 望给个解决办法,ths : )

  2. 我在windows xp平台,用python3.2试了下。内容有中文是没问题的,但是标题中如果带有中文,就会出现错误:”UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 10-11: ordinal not in range(128)”,虽然知道是编码的问题,也在网上搜索过了,但是就是没有解决。我感觉网上的答案是针对Linux系统的,在linux上我已经测试过了,标题或内容中带有中文,都已经解决了,但是对于windows平台就是没解决,希望能给个标题带中文且能在windows上成功运行的代码,谢谢! zhouciming@163.com

发表回复