发送邮件
之前用Java写过一个发送邮件的,这回来一个Python版本的,参照了廖雪峰(地址)的教程,只是优化了几个地方。
源码
示例中是QQ邮箱,QQ邮箱的SMTP密码是授权码(位置在:设置->账户->SMTP…设置),需要先申请才能用,而且QQ邮箱强制使用SSL,请注意。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib # 自己的邮箱地址 from_addr="" # 邮箱密码(有的邮箱可能是使用的授权码) password="" # 发送给谁 to_addr="" # 邮箱的smtp服务器地址 smtp_server="smtp.qq.com" def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') msg['From'] = _format_addr('Python爱好者 <%s>' % from_addr) msg['To'] = _format_addr('管理员 <%s>' % to_addr) msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode() server = smtplib.SMTP(smtp_server, 587) # 因为QQ邮箱使用的是SSL,所以必须使用下面这行代码. server.starttls() server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) server.quit()