MUA:Mail User Agent——邮件用户代理
MTA:Mail Transfer Agent——邮件传输代理 即Email服务提供商,比如网易、新浪
MDA:Mail Delivery Agent——邮件投递代理
发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人
发邮件时,MUA和MTA使用的协议就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一个MTA也是用SMTP协议
收邮件时,MUA和MDA使用的协议有两种:
POP:Post Office Protocol,目前版本是3,俗称POP3;
IMAP:Internet Message Access Protocol,目前版本是4,优点是不但能取邮件,还可以直接操作MDA上存储的邮件,比如从收件箱移到垃圾箱
SMTP发送邮件
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件
http://www.runoob.com/python/python-email.html Python SMTP发送邮件
使用Python的smtplib发送邮件十分简单,只要掌握了各种邮件类型的构造方法,正确设置好邮件头,就可以顺利发出
构造一个邮件对象就是一个Messag对象,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片,
要把多个对象组合起来,就用MIMEMultipart对象;
MIMEBase可以表示任何对象。
它们的继承关系如下:
Message
+- MIMEBase
+- MIMEMultipart
+- MIMENonMultipart
+- MIMEMessage
+- MIMEText
+- MIMEImage