#Python基于smtp协议发送邮件
首先介绍下电子邮件的基本流程:
发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人
MUA:Mail User Agent 邮件用户代理
MTA:Mail Transfer Agent 邮件传输代理
MDA:Mail Delivery Agent 邮件投递代理
发邮件时,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的邮件发送:
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
简单的发一个邮件:
from email.mime.text import MIMEText
import smtplib
msg = MIMEText('you are buautiful','plain','utf-8')
#第一个参数是邮件正文,第二个传plain表示纯文本,第三个utf-8保证了多语言的兼容性
from_addr = input('From:') #输入发件人地址
password = input('password:') #输入客户端授权密码
to_addr = input('To:') #输入收件人地址
smtp_server = input('Smtp_server:')
#输入收件