Python 使用 SMTP 发送电子邮件

2025 年 9 月 11 日 | 阅读 3 分钟

简单邮件传输协议 (SMTP) 用作使用 Python 处理电子邮件传输的协议。它用于在邮件服务器之间路由电子邮件。它是一个应用层协议,允许用户互相发送邮件。接收者使用 POP (邮局协议)IMAP (Internet 消息访问协议) 协议检索电子邮件。

Python Sending Email using SMTP

当服务器监听来自客户端的 TCP 连接时,它会在端口 587 上发起连接。

Python 提供了 smtplib 模块,该模块定义了一个 SMTP 客户端会话对象,用于将电子邮件发送到 Internet 机器。为此,我们必须使用 import 语句导入 smtplib 模块。

SMTP 对象用于电子邮件传输。以下语法用于创建 smtplib 对象。

它接受以下参数。

  • host: 这是运行您 SMTP 服务器的计算机的主机名。在这里,我们可以指定服务器的 IP 地址,例如 (https://tpointtech.cn) 或 localhost。这是一个可选参数。
  • port: 这是主机正在监听 SMTP 连接的端口号。默认值为 25。
  • local_hostname: 如果 SMTP 服务器在您的本地计算机上运行,我们可以指定本地计算机的主机名。

SMTP 对象的 sendmail() 方法用于将邮件发送到所需的计算机。语法如下。

示例

从 Gmail 发送电子邮件

有时会使用 Gmail SMTP 服务器发送电子邮件。在这种情况下,我们可以将 Gmail 作为 SMTP 服务器,而不是使用带有端口 587 的 localhost。

使用以下语法。

在这里,我们需要使用 Gmail 用户名和密码登录 Gmail 帐户。为此,smtplib 提供了 login() 方法,该方法接受发件人的用户名和密码。

如果您使用 Gmail,这可能会让您的 Gmail 要求您允许访问不太安全的应用程序。您需要暂时打开此选项才能使其正常工作。

Python Sending Email using SMTP

请看以下示例。

示例

在电子邮件中发送 HTML

我们可以通过指定 MIME 版本、内容类型和字符集来格式化消息中的 HTML,以发送 HTML。

请看以下示例。

示例


下一个主题Python-datetime