迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

使用 Python 向多个地址发送电子邮件

作者:迹忆客 最近更新:2023/05/31 浏览次数:

在本文中,我们将演示如何使用 Python 编程语言向使用不同电子邮件地址的不同收件人发送电子邮件。 具体来说,我们将向许多不同的人发送电子邮件。


使用 Python 向多个地址发送电子邮件

Python 不仅仅是一种用于构建网站或使用人工智能的编程语言。

它是一种可以在后端、前端或 Web 应用程序的整个堆栈上使用的语言。 因此,它的多功能性使其成为有用的工具。

Python 现在已经发展成为一种也可用于自动发送电子邮件的语言。 涉及电子邮件的任务可以使用 Python 轻松实现自动化。

我们需要几行代码来使用 Python 同时向多个不同的收件人发送电子邮件。

在这篇 Python 文章中,我们将演示如何使用 Python 同时向多个收件人发送电子邮件。

使用 Python 发送电子邮件并不难,特别是如果您使用 smtplib 等模块。 该库将处理连接到邮件服务器并为您发送邮件所需知道的所有信息。

我们将逐步引导您配置 Python 脚本,以便它可以将电子邮件发送到许多不同的地址。 此外,我们将包含一些示例代码供您在开始时使用。

如果我们要使用smtplib,首先需要与服务器建立连接。 我们需要提供服务器的位置以及我们的登录名和密码才能访问该文件。

建立连接后,我们就可以开始互相发送消息了。

要发送消息,我们首先需要构建一个消息对象,然后为发件人、收件人和主题字段提供标头。 我们还可以添加抄送和密件抄送收件人。

消息生成后,我们可以选择添加文本、HTML 或附件。

当我们准备发送消息时,我们可以使用 smtplib 模块中包含的 sendmail() 函数。 该技术需要接收者列表,然后与列表中的每个人进行通信。

那么让我们从 smtplib 开始吧。


Python 中的 smtplib 模块

smtplib 是 Python 中的内置模块。 它有客户端会话对象。

smtplib 定义了一个 SMTP 客户端会话对象。 此对象可用于将电子邮件传送到任何连接到互联网并运行 SMTP 或 ESMTP 侦听器守护程序的计算机。

应用程序程序员不应该直接在他们的工作中使用这个模块。 正在构建脚本以自动执行系统管理活动的系统管理员会发现访问此资源很有价值。

smtplib 模块类

smtplib 模块定义了以下类:

  1. SMTP - SMTP 客户端会话对象
  2. SMTP_SSL - 通过 SSL 连接的 SMTP 客户端会话
  3. IMAP4 - IMAP4 客户端会话对象
  4. POP3 - POP3 客户端会话对象

所有这些类都具有相同的方法和属性。

smtplib 模块异常

smtplib 模块还定义了以下异常:

  1. SMTPException - 所有与 SMTP 相关的异常的基类。
  2. SMTPServerDisconnected - SMTP 服务器意外断开。
  3. SMTPResponseException - SMTP 服务器返回了 2xx 以外的错误代码。
  4. SMTPSenderRefused - SMTP 服务器拒绝接受发件人的地址。
  5. SMTPRecipientsRefused - SMTP 服务器拒绝接受所有收件人地址。
  6. SMTPDataError - SMTP 服务器不接受消息数据。
  7. SMTPConnectError - 无法连接 SMTP 服务器。
  8. SMTPHeloError - SMTP 服务器没有正确响应 HELO 命令。
  9. SMTPNotSupportedError - SMTP 服务器不支持请求的功能。
  10. SMTPAuthenticationError - SMTP 服务器不接受用户名/密码。

让我们转到使用 Python 发送电子邮件的主题。


在 Python 中使用 smtplib 发送电子邮件

众所周知,谷歌一直在打击安全性较低的应用程序访问 Gmail 帐户的行为。 这对许多用户来说是一个很大的挫败感,尤其是那些依赖 Python 通过他们的 Gmail 帐户发送电子邮件的用户。

遗憾的是,Google 不再允许 Less Secure App 访问 Gmail 帐户。 如果我们想使用 Python 的 smtplib 模块通过我们的 Gmail 帐户发送电子邮件,我们需要采取一些额外的步骤来确保您的帐户安全。

因此,我们要做的第一件事是控制对安全性较低的应用程序的访问。


控制对不太安全的应用程序的访问

您可能听说过,Google 已停止为一项名为 Less Secure App 的功能提供支持。 此功能允许您使用 Microsoft Outlook、Thunderbird 或 Apple Mail 等程序访问您的 Gmail 帐户。

这听起来像是痛苦; 不过,这是一件好事! 不太安全的应用程序是一个主要的安全风险,谷歌不再支持它们,它们有助于保护您的帐户安全。

在我们的例子中,我们希望 Python 的 smtplib 访问我们的 Gmail,别担心! 我们不需要提供我们的 Gmail 帐户密码。

我们可以按照以下简单步骤安全地切换:

  • 使用安全连接

    通过 Gmail 帐户发送电子邮件时始终使用安全连接。 Gmail 提供两种不同类型的连接:SSL 和 TLS。

    SSL(安全套接字层)是两种协议中较旧的一种,不如 TLS 安全。 但是,它仍然比未加密的连接更安全。

    TLS(传输层安全)是一种比 SSL 更新、更安全的协议。 如果可用,Gmail 将自动使用 TLS。

  • 登录 Gmail 帐户

    在我们使用 Python 模块 smtplib 发送任何电子邮件之前,我们必须先登录我们的帐户,因为我们需要我们的电子邮件和从我们的 Gmail 帐户生成的密码。

  • 管理帐户

    登录帐户后,我们需要单击 Gmail 配置文件的图标。 我们将看到一个下拉菜单和一个带有 [管理您的 Google 帐户] 的选项。

    我们必须单击它才能进入下一步。

  • 安全

    单击 [管理您的 Google 帐户] 后,我们将被重定向到下一个页面,我们可以在其中找到安全选项。 我们将不得不点击它。

  • 登录谷歌

    单击“安全”后,我们将被重定向到 Gmail 的另一部分,我们可以在其中找到“登录 Google”选项。

    下图向我们展示了登录 Google 有两个选项。

    1. 两步验证
    2. 应用密码

      登录谷歌

  • 启用两步验证

    另一个重要的安全措施是为您的 Gmail 帐户启用双因素身份验证。 双因素身份验证通过要求您输入手机中的代码和密码来增加额外的安全层。

    现在我们必须先打开两步验证。 这很容易; 你可以在几秒钟内完成。

  • 应用密码

    完成两步验证后,我们必须使用 App Passwords 从我们的 Gmail 帐户生成密码。

    当我们点击它时,我们将被重定向到下面提到的页面。

    应用密码

现在我们必须检查选择应用程序和选择设备中的选项。

生成密码

在我们的例子中,我们将选择邮件和 Windows 计算机或任何其他设备以进一步移动并获取密码。 在此之后,我们将单击“生成”按钮。

已生成密码

一旦我们点击生成按钮,我们将被重定向到另一个页面,在那里我们可以看到谷歌已经为我们的电子邮件生成了一个密码,我们可以在使用 Python 的 smtplib 发送电子邮件时使用它。

现在我们已经安全地为我们的电子邮件生成了密码。 我们现在可以转移到 Python 以使用 smtplib 发送电子邮件。


在 Python 中使用 smtplib 发送电子邮件

smtplib 模块使使用 Python 发送电子邮件变得容易。 使用 smtplib 发送电子邮件只需几个步骤。

首先,我们需要创建一个 SMTP 对象。 接下来,我们需要使用 connect() 方法连接到服务器。

最后,我们可以使用 msg.set_content 方法发送电子邮件。 让我们深入研究代码的步骤。

  • 导入库

    我们将首先导入 smtplib。 这是协议,该协议有助于发送电子邮件。

  • 电子邮件格式

    我们使用 email.message import EmailMessage 在 Python 中使用电子邮件格式。 如主题、发件人、收件人和发送。

  • 电子邮件地址

    现在我们将用倒逗号写下我们的电子邮件地址。 我们要从中发送电子邮件的电子邮件。

  • 密码

    我们现在将写入我们之前通过 Gmail 生成的生成密码。

  • 访问 Gmail 数据库

    要访问 Gmail 的数据库,我们将使用 smtplib.SMTP_SSL('smtp.gmail.com', 465)。 它允许我们连接到 Gmail 的数据库。

  • 登录

    现在我们将使用 server.login 命令通过生成的密码登录电子邮件。

  • 发送

    我们现在将使用 v=server.send_message 通过电子邮件发送消息。

  • 打印

    邮件发送成功后,我们会看到一条打印信息,Email has been sent successfully。

示例代码:

import smtplib
from email.message import EmailMessage
EMAIL_ADDRESS = "iqraanwar097@gmail.com"
EMAIL_PASSWORD = '***************'
email = EmailMessage()
email['Subject'] = input(str("Email Subject: "))
email['From'] = "Your Name"
email['To'] = 'abidork41@gmail.com'
email.set_content('Write Your message here')
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully")

输出:

Email Subject: Email sent using python
Email has been sent successfully

这就是我们如何向一个电子邮件地址发送电子邮件。 但是如果我们想向多个地址发送电子邮件,我们可以使用逗号分隔我们的电子邮件,并向我们想要的任意多个地址发送电子邮件。

示例代码:

import smtplib
from email.message import EmailMessage
EMAIL_ADDRESS = "abs@gmail.com"
EMAIL_PASSWORD = '*************'
email = EmailMessage()
email['Subject'] = input(str("Email Subject: "))
email['From'] = "Your Name"
email['To'] = 'abidork41@gmail.com,abidork41@gmail.com,abidork41@gmail.com'
email.set_content('Write Your message here')
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
server.send_message(email)
server.quit()
print("Email has been sent successfully to all the addresses")

输出:

Email Subject: I have a news for you all
Email has been sent successfully to all the addresses

我们的电子邮件会发送到所有提到的地址。

所以这让我们结束了讨论! 我们可以使用 Python 快速轻松地同时向多个人发送电子邮件,这只需要您编写几行代码。

我们希望您发现本文有助于理解如何使用 Python 将电子邮件发送到多个地址。

上一篇:Python 中的 SendGrid

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 SendGrid

发布时间:2023/06/01 浏览次数:129 分类:Python

SendGrid 是一家 SMTP 服务提供商,提供 Web API 以允许客户处理集成信息。 通过该服务提供的 API 密钥,可以在很短的时间内轻松发送各种电子邮件。

Python 线程优先级

发布时间:2023/06/01 浏览次数:159 分类:Python

使用 Python 线程,我们可以同时运行程序的不同部分,使您的程序设计更容易。 如果您了解一些 Python,我们将向您展示如何使用线程来加速您的 Python 程序。Python 中的线程

Python 线程队列

发布时间:2023/06/01 浏览次数:65 分类:Python

本篇文章将介绍限制 Python 中的活动线程数。Python 中的线程 Python 中的线程允许多个执行线程在单个进程中同时运行。

在 Python 中实现最小堆

发布时间:2023/06/01 浏览次数:181 分类:Python

本篇文章将介绍最小堆及其在 Python 中的实现。Python 中的最小堆 每个父节点都小于或等于最小堆中的子节点。 它遵循升序,优先级总是与较小的节点。

Python Heapq 窥视

发布时间:2023/06/01 浏览次数:54 分类:Python

我们可以使用 heap[0] 表示法、heappop() 函数和 nsmallest() 函数来查看 Python 中堆的最小元素。

Python 中十六进制数的按位异或

发布时间:2023/06/01 浏览次数:109 分类:Python

本文的主要目的是演示如何在 Python 的十六进制数字系统中处理 XOR 数字。Python 中十六进制数的按位异或 XOR 是按位运算符,意思是异或。

在 Python 中将十六进制转换为 Base64

发布时间:2023/06/01 浏览次数:85 分类:Python

本篇文章将介绍在 Python 中将 hex 转换为 base64 的方法。使用 Python 中的 codecs 模块将 HEX 转换为 BASE64 Python 中的 codecs 模块提供了 encode() 和 decode() 方法来实现不同文本编码格式之间的转换。

Python 中的 Fama-Macbeth 回归

发布时间:2023/06/01 浏览次数:68 分类:Python

本篇文章介绍了 Fama-Macbeth 回归、其重要性及其实施。Fama-Macbeth 回归及其重要性 在资产定价理论中,我们使用风险因素来描述资产收益。

Python 逐步回归

发布时间:2023/06/01 浏览次数:75 分类:Python

本篇文章将讨论在 Python 中执行逐步回归的方法。Python 中的逐步回归 逐步回归是一种用于统计和机器学习的方法,用于选择特征子集来构建线性回归模型。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便