写了一个服务器的监控程序,里面用到邮件提醒功能。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!