大佬教你用Python实现发送邮件实现单发/群发邮件验证码附带源码
Posted 编程界的小胖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大佬教你用Python实现发送邮件实现单发/群发邮件验证码附带源码相关的知识,希望对你有一定的参考价值。
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服务,我们得先去开启它
# smtplib 用于邮件的发信动作
import smtplib
from 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()
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
需要相关资料的可以通过扫一扫
以上是关于大佬教你用Python实现发送邮件实现单发/群发邮件验证码附带源码的主要内容,如果未能解决你的问题,请参考以下文章
利用Python实现的一个自动群发或单发邮件的小脚本!(SMTP协议)
# yyds干货盘点 # 手把手教你使用Python网络爬虫实现邮件定时发送(附源码)
#yyds干货盘点# 手把手教你使用Python网络爬虫实现邮件定时发送(附源码)