利用 python 发送邮件
电子邮件系统简述
电子邮件系统的组成如下图:
电子邮件的发送过程如下图:
一封电子邮件由一个基本的信封、数个首部字段、一个空行和邮件主体组成,常见的首部如下图:
python实现
此处仅实现文本内容的电子邮件发送。
emai实现邮件构造,其中MIMEText提供邮件构造功能,Header提供编码功能。
smtplib实现SMTP协议,完成邮件发送。
from email.header import Header
from email.mime.text import MIMEText
import smtplib
def sendEmail(from_addr, password, to_addr, smtp_server, content):
'''
parameters:
from_addr 发送方邮箱
password 发送方密码
to_addr 接收方邮箱
smtp_server 发送方邮件服务器
content 邮件内容 {'text': 'xxx', 'subject': 'xxx'}
'''
msg = MIMEText(content['text'], 'plain', 'utf-8')
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header(content['subject'])
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
if __name__ == '__main__':
content = {'text': '邮件发送测试', 'subject': 'test'}
from_addr = 'xxx@qq.com' #以QQ邮箱为例
password = 'xxx' #授权码
to_addr = '839957231@qq.com' #接收方邮箱
smtp_server = 'smtp.qq.com' #发送方服务器
sendEmail(from_addr, password, to_addr, smtp_server, content)