写了一个服务器的监控程序,里面用到邮件提醒功能。python sample code里面没有认证的部分,于是查了文档,google了一下,下了如下的smtp发送邮件的函数,支持smtp验证。代码如下:
#!/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 "发送失败"
有问题请指教
《 “简单的python smtp发邮件代码” 》 有 20 条评论
[…] 简单的python smtp发邮件代码 […]
有anth的smtp服务不行
试了一下,关于这个在网页版的邮件系统中文是没问题的,但是在客户端就会有问题,比如foxmail等 望给个解决办法,ths : )
谢谢,正好要用126发邮件
中文乱码~ 很郁闷的问题~ 该怎么解决呀~
您好~ 功能是实现了~ 但是中文为什么是乱码呢
不错 用了,不过有些邮箱好像有限制,网易企业邮箱提示:用户被锁定。
我在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
你实在windows用cmd窗口处理的?这个窗口默认应该是gbk的编码,可能跟这个有关。
不错,一试就OK了。PS:我用新浪邮箱测试的。
你好,这样发出去的消息内容是乱码啊
[…] 如果想要群发又如何呢?看看百变宝贝的提供的源码: […]
菜鸟……初学者……用如上方法连不上smtp.gmail.com
俺都写了是126的,你非要用gg的。
gmail的应该不是这个端口,而且可能走的是加密协议,你再去google百度一下相关信息。:)
不错, 我学Python, 从你这借鉴的代码良多
收费可以啊!
可否设计一个软件,提供“网站留言转邮件”服务?
可以了,谢谢
您好,运行这个程序,虽然打印是“发送成功”,但邮箱里并没有受到,请问是什么问题,谢谢
thank you!