#coding:utf-8
#!/usr/bin/env python3
import smtplib
from email import encoders
from email.mime.text import MIMEText
from email.header import Header
from email.utils import parseaddr, formataddr
def _format_addr(s):
"""编写了一个函数来格式化一个邮件地址。
不能简单地传入name <addr@example.com>,
因为如果包含中文,需要通过Header对象进行编码。
"""
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))
from_addr = input('from:')
password = input('password:') #这里的密钥不是邮箱密码
smtp_server = 'smtp.126.com'
to_addr = input('to:')
#不同的信息类型对应不同的格式,plain或html
# msg = MIMEText('hello你好, send by python3... ', 'plain', 'utf-8')
msg = MIMEText('<html><body><h3>Hello</h3>' +
'<p>send by <a href="http://www.python.org">Python</a>...</p>' +
'</body></html>', 'html', 'utf-8')
msg['From'] = _format_addr('Python lover <%s>' % from_addr)
msg['To'] = _format_addr('管理员 <%s>' % to_addr)
msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode()
server = smtplib.SMTP(smtp_server, 25) #SMTP端口是25
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
注意事项:
1,邮箱必须手动开通POP或SMTP功能,即通过第三方软件登陆访问SMTP服务器
2,发送信息需要补充From,To,Subject,不然会被拒绝。
3,