python 发邮件
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- import smtplib
- from email.mime.text import MIMEText
- import string
- mailto_list=["XX@163.com","XXX@163.com"]
- print mailto_list
- mail_host="smtp.exmail.qq.com" #设置服务器
- mail_user="XX@qq.com" #用户名
- mail_pass="passwd" #口令
- neirong="<ul><li><font size=\"2\">12345</font></li></ul>"
- def send_mail(to_list,sub,content): #定义一个函数, 收件人, 标题, 邮件内容
- me="hello"+"<"+mail_user+">" #发件人定义, 这里要和认证帐号一致才行的
- msg = MIMEText(content,_subtype='html',_charset='utf-8') #这里看 email 模块的说明, 这里构造内容
- msg['Subject'] = sub
- msg['From'] = me
- # msg['To'] = string.join(mailto_list,",") #这是 2 中的一种写法, 通过 string.join() 函数, 可以把元组中的各个字段以 "," 分隔, 和下面达到一样的效果
- msg['To'] = ",".join(mailto_list) #这种在 2 和 3 都可以用, 在 3 中, string 模块中取消了 join() 函数, join() 函数作为一个全局函数被使用
- try:
- server = smtplib.SMTP()
- server.connect(mail_host)
- # server.starttls()
- server.login(mail_user,mail_pass)
- server.sendmail(me, to_list, msg.as_string())
- server.close()
- return True
- except Exception, e:
- print str(e)
- return False
- if __name__ == '__main__': #做个判断, 当直接调用的时候才执行这个函数, 什么是直接调用? 就是我直接执行这个脚本的时候就是直接调用, 如果我在别的脚本导入这个脚本在执行就是间接调用
- if send_mail(mailto_list,"hello",neirong):
- print "发送成功"
- else:
- print "发送失败"
来源: http://www.bubuko.com/infodetail-2860613.html