电子邮件
Email的历史比Web久远。
电子邮件的运作和真实的邮件相似,只不过速度很快仅需秒记。
电子邮件软件被称为 MUA(mail user agent)
Email from A MUA pass A MTA(Mail Transfer Agent) pass some MTA pass B MTA to B MDA(Mail Delivery Agent) 这就到了某个服务器,存到某个数据库。最后由MUA取邮件
编写程序来发送和接收邮件,本质就是:
1.编写MUA把邮件发到MTA
2.编写MUA从MDA收取邮件
发邮件时,MUA和MTA使用的协议是SMTP:Simple Mail Transfer Protocol (MTA to MTA 也是该协议)
收邮件时,MUA和MDA使用的协议有两种:POP(Post Office Protocol),目前是POP3;IMAP(Internet Message Access Protocol)目前版本是4,优点不尽可以从MDA上取,还可以存到MDA(把收件箱邮件移到垃圾箱等)
SMTP发送邮件
Python内置对SMTP支持。email模块负责构造邮件,smtplib负责发送邮件。
from ,to ,subject 如果出现中文,需要要Header编码
发送html邮件
发送附件 MIMEBase
发送图片,正文有图片 = html + 附件,在html中引用附件的图片
同时支持HTML 和 Plain格式,同时发html 和 plain,接收人如果不支持html会自动降级为plain
加密SMTP,标准25端口是文明传输。加密,要建立SSL安全连接server.startls()
POP3收取邮件
poplib 模块,实现了POP3协议
1.用poplib 下载
2.用email 解析 ,与构造邮件相反,较麻烦,递归的打印Message对象,猜测编码