写点什么

Python 实现发送邮件 (实现单发 / 群发邮件验证码)

发布于: 3 小时前

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()
复制代码


发布于: 3 小时前阅读数: 3
用户头像

个人公众号:Python研究者 2021.04.26 加入

教你如何学Python,专注于Python入门与进阶、爬虫、数据分析挖掘、数据可视化。分享Python相关的技术文章、工具资源、视频教程、学习资料。

评论

发布
暂无评论
Python实现发送邮件(实现单发/群发邮件验证码)