简单的python smtp发邮件代码

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

  1. Pingback引用通告: Python 发送邮件 | 麦叶

  2. nataila

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

    回复
  3. leoaee

    不错 用了,不过有些邮箱好像有限制,网易企业邮箱提示:用户被锁定。

    回复
  4. zhouciming

    我在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

    回复
    1. 贝贝爸 文章作者

      你实在windows用cmd窗口处理的?这个窗口默认应该是gbk的编码,可能跟这个有关。

      回复
  5. Pingback引用通告: 使用Python发送Email | Code之行人

    1. 贝贝爸 文章作者

      俺都写了是126的,你非要用gg的。
      gmail的应该不是这个端口,而且可能走的是加密协议,你再去google百度一下相关信息。:)

      回复
  6. ff

    您好,运行这个程序,虽然打印是“发送成功”,但邮箱里并没有受到,请问是什么问题,谢谢

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据