亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python
Python - 使用 SMTP 发送电子邮件

上一页下一页

简单邮件传输协议 (SMTP) 是一种协议,用于处理在邮件服务器之间发送电子邮件和路由电子邮件。

Python 提供 smtplib 模块,它定义了一个 SMTP 客户端会话对象,该对象可用于将邮件发送到任何带有 SMTP 或 ESMTP 侦听器守护程序的 Internet 机器。

这是创建一个 SMTP 对象的简单语法,稍后可用于发送电子邮件 -

import smtplibsmtpObj =smtplib.SMTP( [host [, port [, local_hostname]]] )

这是参数的详细信息 -

SMTP 对象有一个名为 sendmail 的实例方法 ,通常用于执行邮寄消息的工作。它需要三个参数 -

示例

这是一种使用 Python 脚本发送电子邮件的简单方法。尝试一次 -

#!/usr/bin/pythonimport smtplibsender ='from@fromdomain.com'receivers =['to@todomain.com']message ="""From:From Person To:To Person Subject:SMTP e-mail testThis is a test e-mail message."""try:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(sender,接收器,消息)打印“成功发送电子邮件”除了 SMTPException:打印“错误:无法发送电子邮件”

在这里,您在消息中放置了一封基本的电子邮件,使用三重引号,注意正确设置标题格式。电子邮件需要发件人 , , 和 主题 邮件头,以空行与邮件正文隔开。

使用 smtpObj 发送邮件 连接到本地机器上的 SMTP 服务器,然后使用 sendmail 方法以及消息、发件人地址和目标地址作为参数(即使发件人和收件人地址位于电子邮件本身内,但这些并不总是用于路由邮件)。

如果您没有在本地机器上运行 SMTP 服务器,您可以使用 smtplib 客户端与远程 SMTP 服务器进行通信。除非您使用网络邮件服务(例如 Hotmail 或 Yahoo! Mail),否则您的电子邮件提供商必须已向您提供了您可以提供的外发邮件服务器详细信息,如下所示 -

smtplib.SMTP('mail.your-domain.com', 25)

使用 Python 发送 HTML 电子邮件

当您使用 Python 发送文本消息时,所有内容都被视为简单文本。即使您在文本消息中包含 HTML 标记,它也会显示为简单文本,并且 HTML 标记不会根据 HTML 语法进行格式化。但是 Python 提供了将 HTML 消息作为实际 HTML 消息发送的选项。

发送电子邮件时,您可以指定 Mime 版本、内容类型和字符集以发送 HTML 电子邮件。

示例

以下是将 HTML 内容作为电子邮件发送的示例。尝试一次 -

#!/usr/bin/pythonimport smtplibmessage ="""From:From Person To:To Person MIME-Version:1.0Content -type:text/htmlSubject:SMTP HTML 电子邮件测试这是一封以 HTML 格式发送的电子邮件这是 HTML 邮件。

这是标题。

"" "try:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(sender, receivers, message) 打印“成功发送电子邮件”,SMTPException 除外:打印“错误:无法发送电子邮件”

通过电子邮件发送附件

发送混合内容的电子邮件需要设置Content-type 标题到多部分/混合 .然后,可以在边界内指定文本和附件部分 .

边界以两个连字符开头,后跟一个唯一编号,该编号不能出现在电子邮件的消息部分。表示电子邮件最后一部分的最后边界也必须以两个连字符结尾。

附加文件应使用 pack("m") 编码 功能在传输前进行base64编码。

示例

以下是发送文件 /tmp/test.txt 的示例 作为附件。尝试一次 -

#!/usr/bin/pythonimport smtplibimport base64filename ="/tmp/test.txt"# 读取文件并编码为base64格式fo =open(filename, "rb")filecontent =fo .read()encodedcontent =base64.b64encode(filecontent) # base64sender ='webmaster@tutorialpoint.com'reciever ='amrood.admin@gmail.com'marker ="AUNIQUEMARKER"body ="""这是要发送的测试邮件一个附件。"""#定义主要的headers.part1 ="""From:From Person To:To Person Subject:Sending AttachementMIME-Version:1.0Content -Type:multipart/mixed;boundary=%s--%s""" % (marker,marker)#定义消息 actionpart2 ="""Content-Type:text/plainContent-Transfer-Encoding:8bit%s-- %s""" % (body,marker)#定义附件部分part3 ="""Content-Type:multipart/mixed; name=\"%s\"Content-Transfer-Encoding:base64Content-Disposition:attachment; filename=%s%s--%s--""" %(文件名,文件名,编码内容,标记)message =part1 + part2 + part3t ry:smtpObj =smtplib.SMTP('localhost') smtpObj.sendmail(sender, reciever, message) 打印“成功发送电子邮件”除外异常:打印“错误:无法发送电子邮件”

Python

  1. Python while Loop
  2. Python 迭代器
  3. Python - 循环
  4. Python 2 与 Python 3:Python 2.x 和 Python 3.x 之间有什么区别?
  5. Python 自定义异常
  6. PyTest 教程:什么是、如何安装、框架、断言