Python smtplib 教程展示了如何使用 smtplib 模块在 Python 中发送电子邮件。 要发送电子邮件,我们使用 Python 开发服务器,Mailtrap 在线服务和共享的网络托管邮件服务器。
smtplib 库
python 发送邮件需要用到 smtplib 库,先简单了解一下
SMTP
简单邮件传输协议(SMTP)是用于电子邮件传输的通信协议。 Is 是一个 Internet 标准,该标准于 1982 年由 RFC 821 首次定义,并于 2008 年由 RFC 5321 更新为扩展 SMTP 添加。 邮件服务器和其他邮件传输代理使用 SMTP 发送和接收邮件。
smtplib是一个 Python 库,用于使用简单邮件传输协议(SMTP)发送电子邮件。 smtplib是内置模块; 我们不需要安装它。 它抽象了 SMTP 的所有复杂性。
邮件服务器
要实际发送电子邮件,我们需要有权访问邮件服务器。 Python 带有一个简单的开发邮件服务器。 Mailslurper 是易于使用的本地开发服务器。 共享的虚拟主机提供商使我们可以访问邮件服务器。 我们可以在帐户中找到详细信息。
smtp 协议的基本命令包括:\
HELO 向服务器标识用户身份\ MAIL 初始化邮件传输 mail from:\ RCPT 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to:\ DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束\ VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令\ EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用\ HELP 查询服务器支持什么命令\ NOOP 无操作,服务器应响应OK\ QUIT 结束会话\ RSET 重置会话,当前传输被取消\ MAIL FROM 指定发送者地址\ RCPT TO 指明的接收者地址
复制代码
实战
1.126 邮箱一般默认关闭 SMTP 服务,我们得先去开启它
2.Python 代码如下
# smtplib 用于邮件的发信动作import smtplibfrom email.mime.text import MIMEText# email 用于构建邮件内容from email.header import Header# 用于构建邮件头# 发信方的信息:发信邮箱,126 邮箱授权码from_addr = 'trobot@126.com'password = 'POP3/SMTP服务授权密码,上一步可以获取' # 收信方邮箱to_addr = 'xxxx@163.com' # 发信服务器smtp_server = 'smtp.126.com'
"""标题"""head="邮箱验证码""""正文"""text="【TRobot】您的验证码32123,该验证码5分钟内有效,请勿泄漏于他人!"
# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码msg = MIMEText(text,'plain','utf-8') # 邮件头信息msg['From'] = Header(from_addr)msg['To'] = Header(to_addr)msg['Subject'] = Header(head) # 开启发信服务,这里使用的是加密传输#server = smtplib.SMTP_SSL()server=smtplib.SMTP_SSL(smtp_server)server.connect(smtp_server,465)# 登录发信邮箱server.login(from_addr, password)# 发送邮件server.sendmail(from_addr, to_addr, msg.as_string())# 关闭服务器server.quit()
复制代码
评论