python 发送邮件
SMTP发送邮件
简单的,参见http://blog.csdn.net/handsomekang/article/details/9785411
import smtplib from email.mime.text import MIMEText _user = "" #填写发件人用户名 _pwd = "" #密码 _to = "" #收件人地址 #使用MIMEText构造符合smtp协议的header及body msg = MIMEText("hello,world") msg["Subject"] = "Test" msg["From"] = _user msg["To"] = _to s = smtplib.SMTP("smtp.qq.com", timeout=30)#连接smtp邮件服务器,端口默认是25 s.login(_user, _pwd)#登陆服务器 s.sendmail(_user, _to, msg.as_string())#发送邮件 s.close()
需要注意的是,各个邮箱的smtp服务器是不一样的。主要依据发件人所在的邮箱而定
#qq
smtp.qq.com
#163
smtp.163.com
#gmail
smtp.gmail.com
#126
smtp.126.com
Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
下面一个例子可以打印出,且规范发送的内容
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') """ __author__="tina" __mtime__ = '2015/12/17 10:22' """ from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(),addr.encode('utf-8') if isinstance(addr, unicode) else addr)) #自己填写对应地址 from_addr = "" password = "" to_addr = "" smtp_server = "smtp.163.com" msg = MIMEText('hello,world','plain','utf-8') msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr) msg['To'] = _format_addr(u'管理员 <%s>' % to_addr) msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) #打印和SMTP服务器交互的所有信息 server.login(from_addr, password) #登录 server.sendmail(from_addr, [to_addr], msg.as_string()) #SMTP可以一次发给多人,所以传入一个list server.quit()