- Python - 网络编程
- Python - 网络基础
- Python - 网络环境
- Python - 互联网协议
- Python - IP 地址
- Python - DNS 查询
- Python - 路由
- Python - HTTP 请求
- Python - HTTP 响应
- Python - HTTP 头部
- Python - 自定义 HTTP 请求
- Python - 请求状态码
- Python - HTTP 认证
- Python - HTTP 数据下载
- Python - 连接复用
- Python - 网络接口
- Python - 套接字编程
- Python - HTTP 客户端
- Python - HTTP 服务器
- Python - 构建 URL
- Python - Web 表单提交
- Python - 数据库和 SQL
- Python - Telnet
- Python - 邮件消息
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - 谷歌地图
- Python - RSS Feed
Python - SMTP
简单邮件传输协议 (SMTP) 是一种协议,用于处理发送电子邮件并在邮件服务器之间路由电子邮件。
Python 提供了 **smtplib** 模块,该模块定义了一个 SMTP 客户端会话对象,可用于将邮件发送到任何具有 SMTP 或 ESMTP 监听守护程序的互联网机器。
SMTP 对象有一个名为 **sendmail** 的实例方法,通常用于执行发送邮件的工作。它接受三个参数:
发件人 - 包含发件人地址的字符串。
收件人 - 字符串列表,每个收件人一个。
邮件内容 - 格式化为 RFC 中指定的格式的邮件字符串。
示例
以下是如何使用 Python 脚本发送一封简单电子邮件的方法。请尝试一下:
#!/usr/bin/python3 import smtplib sender = '[email protected]' receivers = ['[email protected]'] message = """From: From Person <[email protected]> To: To Person <[email protected]> Subject: SMTP e-mail test This is a test e-mail message. """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email"
在这里,您使用三引号将基本电子邮件放在 message 中,并确保正确格式化标题。电子邮件需要 **From**、**To** 和 **Subject** 标题,并用空行与电子邮件正文隔开。
要发送邮件,您使用 smtpObj 连接到本地机器上的 SMTP 服务器。然后使用 sendmail 方法以及邮件内容、发件人和目标地址作为参数(即使发件人和收件人地址在电子邮件本身中,这些地址并不总是用于路由邮件)。
如果您在本地机器上没有运行 SMTP 服务器,则可以使用 smtplib 客户端与远程 SMTP 服务器通信。除非您使用 Web 邮件服务(如 Gmail 或 Yahoo! Mail),否则您的电子邮件提供商必须为您提供传出邮件服务器详细信息,您可以按如下方式提供:
mail = smtplib.SMTP('smtp.gmail.com', 587)
使用 Python 发送 HTML 电子邮件
当您使用 Python 发送文本消息时,所有内容都将被视为纯文本。即使您在文本消息中包含 HTML 标签,它也会显示为纯文本,并且 HTML 标签不会根据 HTML 语法进行格式化。但是,Python 提供了一个选项可以将 HTML 消息作为实际的 HTML 消息发送。
在发送电子邮件消息时,您可以指定 Mime 版本、内容类型和字符集以发送 HTML 电子邮件。
示例
以下是如何将 HTML 内容作为电子邮件发送的示例。请尝试一下:
#!/usr/bin/python3 import smtplib message = """From: From Person <[email protected]> To: To Person <[email protected]> MIME-Version: 1.0 Content-type: text/html Subject: SMTP HTML e-mail test This is an e-mail message to be sent in HTML format <b>This is HTML message.</b> <h1>This is headline.</h1> """ try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) print "Successfully sent email" except SMTPException: print "Error: unable to send email"