Python 通过 SMTP 发送邮件
程序员文章站
2022-07-07 18:52:19
Python版本:Python3.5.2 简介 SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。 Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件 ......
Python版本:Python3.5.2
简介
SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件。
Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件。
我使用的是 QQ 邮箱来完成本次实验,首先应该配置好自己的邮箱以启用 SMTP 功能,具体步骤如下:
登录到 QQ 邮箱的首页,找到设置功能:
进入到设置,切换到帐户标签页:
下拉找到如下选项,并启用 SMTP 功能:
启用成功后,会生成一个授权码,用于登录 SMTP 服务器。这个授权码不唯一,忘记的话可以点击再次生成。
实验源码如下
__Author__ = "Lance#" # -*- coding = utf-8 -*- from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib def _format_addr(s): name, addr = parseaddr(s) return formataddr((Header(name, 'utf-8').encode(), addr)) from_addr = 'xxx@qq.com' password = '你的授权码' to_addr = 'xxx@qq.com' smtp_server = 'smtp.qq.com' #要发送的消息 SendMsg = 'This is SMTP test.' #构造一个 MIMEText 对象 msg = MIMEText(SendMsg, 'plain', 'utf-8') #依次填充对象的各个选项 msg['From'] = _format_addr('Python <%s>' % from_addr) msg['To'] = _format_addr('User <%s>' % to_addr) msg['Subject'] = Header('This is SMTP test.', 'utf-8').encode() #构造 SMTP 服务器,QQ 邮箱的 SMTP 端口为 465 且为 SSL 加密协议 server = smtplib.SMTP_SSL(smtp_server, 465) #启用该选项,可以打印出和SMTP服务器交互的所有信息 server.set_debuglevel(1) server.login(from_addr, password) #发送邮件, 此处的 to_addr 可以是一个 list,可以给多人发送 server.sendmail(from_addr, [to_addr], msg.as_string()) #退出 SMTP 服务器 server.quit()
接收邮件的邮箱可以设置和发送方地址一样,这样程序正常运行结束后,自己的邮箱就可以收到刚刚发送过的邮件。
上一篇: 怎么给MacBook 充电器找个保镖
下一篇: Mac导入或复制照片至「照片」应用的方法