`

python发送邮件

 
阅读更多

python自带的smtplib模块对邮件发送提供了支持,所以首先要import smtplib。

# coding:utf-8
import smtplib
from email.mime.text import MIMEText
#   收件人列表
mailto_list=["XXXXX@qq.com;XXXXXX@qq.com"]
#   设置服务器
mail_host="smtp.qq.com"
#   用户名
mail_user="yourmail"
#   密码
mail_pass="password"
#   发件箱后缀
mail_postfix="qq.com"
# to_list:收件人;sub:主题;content:邮件内容

def send_mail(to_list,sub,content):
    # 这里的hello可以任意设置,收到信后,将按照设置显示
    me="hello"+"<"+mail_user+"@"+mail_postfix+">"
    # msg = MIMEText(content,subtype='html',charset='gb2312')    # 创建一个实例,这里设置为html格式邮件
    msg = MIMEText(content,_subtype='plain')    # 设置为文本格式邮件
    msg['Subject'] = sub    # 设置主题
    msg['From'] = me
    msg['To'] = ";".join(to_list) # 将收件人列表以“;”隔开
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)  # 连接smtp服务器
        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
for i in range(2):                             #发送2封,不过会被拦截的。。。
    if send_mail(mailto_list,"hello","今天星期五了哦!"):  #邮件主题和邮件内容
        print "done!"
    else:
        print "failed!"

 使用这种方法发送邮件很有可能会被视为垃圾邮件,需要对发送邮件账户开启stmp。

执行后会报“535 error Authentication failed”

 

另外,测试过163邮箱对QQ邮箱发送回屏蔽掉,QQ对163发送正常,QQ邮件对QQ邮箱发送也正常。一般公司会使用企业邮箱进行通知,具体看公司运维怎么做。

 

发送电子邮件内容有很多形式,本次是用文本形式发送的。还有网页形式,发送图片形式等。

发送邮件方式可以参考一下:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html

 

那么针对安全机制,比如常见的公司邮箱大多都是用SSL加密,类似的可以参考一下:

http://blog.chinaunix.net/uid-10597892-id-3530583.html

 

 

 

补充:

s= smtplib.SMTP(mailserver)
# 设置为调试模式,就是在会话过程中会有输出信息
s.set_debuglevel(1)
# ehlo命令,docmd方法包括了获取对方服务器返回信息,如果支持安全邮件,返回值里会有starttls提示
s.docmd("EHLO server")
s.starttls()  # <------ 这行就是新加的支持安全邮件的代码

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics