paint-brush
使用 Python 发送电子邮件通知(包括代码示例)经过@suprsend
6,172 讀數
6,172 讀數

使用 Python 发送电子邮件通知(包括代码示例)

经过 Nik L.7m2023/03/30
Read on Terminal Reader

太長; 讀書

使用 Python 发送交易电子邮件有四种不同的方法。 SMTP 模块可用于使用简单邮件传输协议发送电子邮件。您可以使用 MIMEText 或 EmailMessage 模块来创建和格式化消息。使用 SMTP 发送 python 电子邮件有一些潜在的缺点。
featured image - 使用 Python 发送电子邮件通知(包括代码示例)
Nik L. HackerNoon profile picture
0-item



电子邮件通知是让您的用户了解应用程序中的重要事件或更新的好方法,例如新消息、密码重置或系统故障。发送电子邮件通知的方法有多种,虽然过程可能并不复杂,但根据您的需要选择正确的方法很重要。


在这篇博客中,我们将研究如何在代码片段的帮助下使用 Python 发送电子邮件。我们还将比较 Python 中使用的 SMTP 模块与其他流行的解决方案。


先决条件

在开始使用本指南之前,您需要做一些事情才能充分利用它。


  1. Python 安装在你的机器上
  2. 对 Python 和 CLI 的基本了解
  3. AWS 账户设置和对 AWS SES 的了解
  4. 工作 Suprsend 帐户(配置供应商)


考虑到这些事情,您应该准备好开始了!

使用 Python 发送电子邮件通知的 4 种不同方式

本节将讨论开发人员使用 Python 发送交易电子邮件的四种不同方式。

使用 Python smtplib模块

smtplib Python 模块可以使用简单邮件传输协议 ( SMTP ) 发送电子邮件。 SMTP 是一种用于发送和接收电子邮件的协议。 smtplib模块包括可用于连接到 SMTP 服务器和发送电子邮件的函数。该模块还包括可以通过 SMTP 服务器进行身份验证的功能。

使用smtplib Python 模块的好处

使用smtplib模块有很多好处。例如,您可以使用smtplib来:

  • 从您的 Python 程序发送电子邮件
  • 从脚本发送电子邮件(自动化脚本、玉米作业等)
  • 群发邮件
  • 发送 HTML 电子邮件
  • 发送附件

smtplib 模块的缺点

使用 SMTP 发送 python 电子邮件有一些潜在的缺点。一是它不如其他方法可靠;有时,通过 SMTP 发送的电子邮件会丢失或最终进入垃圾邮件文件夹。


此外,SMTP 依赖于多个复杂的协议,因此难以配置和排除故障。维护和升级 SMTP 服务器也可能需要额外的费用。

通过 SMTP Python 模块发送电子邮件的步骤

您可以使用 MIMEText 或 EmailMessage 模块来创建和格式化消息。以下是使用带有smtplibMIMEText模块的 Python 发送电子邮件的步骤。

  • 从电子邮件库导入smtplibMIMEText模块。
  • 创建一个新的MIMEText对象并设置电子邮件的正文、发件人、收件人和主题。
  • 使用smtplib.SMTP()函数建立与 SMTP 服务器的连接,将服务器的主机名作为参数传递。
  • 使用send_message()函数发送电子邮件。
  • 使用quit()函数关闭与服务器的连接。
  • 使用 try/except 块来捕获在发送过程中可能抛出的任何异常。

代码片段

注意:在运行以下代码之前,将 SMTP 服务器地址 (localhost) 替换为您的服务器地址。

SMTP模块

交易电子邮件服务提供商

交易电子邮件服务提供商 (TESP) 使企业能够发送交易电子邮件。有许多选项可供选择,包括 Amazon SES、Mailgun、Sendgrid、Postmark 和 Sparkpost,每个选项都有自己的优点和功能。

选择在定价、交付率、可扩展性和支持方面满足您的需求并且还提供强大的 API 以集成到您的系统中的 TESP 非常重要。

交易电子邮件服务提供商的优势

交易电子邮件服务提供商 (TESP) 与传统电子邮件提供商相比具有多项优势。

  • TESP 旨在为依赖电子邮件与客户沟通的企业提供更高水平的服务和可靠性。
  • TESP 可以提供一种经济高效的方式来发送交易电子邮件,因为它们通常根据发送或接收的电子邮件数量收费。
  • TESP 通常提供传统电子邮件提供商所不具备的多种功能,例如专用 IP 地址、实时监控和送达报告。

交易电子邮件服务提供商的缺点

  • TESP 的设置和使用可能具有挑战性,因此需要开发人员。
  • TESP 通常提供基于 API 的集成;因此,必须通过 API 集成电子邮件内容布局,例如 HTML 模板。
  • 在发送数量相对较少的电子邮件时,TESP 可能具有成本效益,但随着数量的增加,它可能会成为一个昂贵的选择。
  • 配置不当可能导致电子邮件被发送到垃圾邮件文件夹。某些 TESP 可能具有次优的电子邮件发送配置,例如使用在多个用户之间共享的具有负面声誉的 IP 地址。

本节将使用 Python 和 AWS SES 发送电子邮件。 AWS SES 是一种基于云的电子邮件服务,可让您安全地发送和接收电子邮件。它提供具有成本效益的现收现付定价模式,并提供可扩展、可靠且安全的电子邮件传送平台。

使用 AWS SES 发送电子邮件的步骤

我们将使用 Boto3 库与 AWS SES 交互。以下是 AWS SES 发送电子邮件 python 过程中遵循的步骤。

  • botocore.exceptions导入必要的库和模块: boto3和 ClientError。
  • 定义 send_email() 函数,它有六个参数:发件人和收件人的电子邮件地址、电子邮件的主题和正文以及 SES 服务所在的 AWS 区域的名称。
  • 使用boto3.client()函数在指定区域为 SES 服务创建一个新客户端。
  • 使用SES客户端的send_email()方法发送邮件,在Destination和Message参数中指定邮件的内容(主题、正文、收件人)。
  • 在使用try-except块发送电子邮件时捕获任何错误并打印错误消息。
  • 如果邮件发送成功,返回True 。否则,返回False

代码片段

从 Amazon SES 发送电子邮件

使用暂停

Suprsend 是一个平台,允许开发人员跨多个渠道创建和管理通知,例如电子邮件、短信、推送通知、收件箱消息和聊天。


SuprSend 工作流程简化了构建和管理复杂通知和性能跟踪以监控消息有效性的过程。使用单一的 API,简化了发送过程并消除了开发人员编写自己的通知服务层的需要。

使用 Suprsend 的好处:

  • 它具有高度可扩展性,可用于为任意数量的用户开发通知。
  • SuprSend 内置了与 TESP(s) SMTP 和 Gmail SMTP 的集成,因此开发人员不必与它们进行设置或点对点 API 集成。此功能允许在供应商之间无缝切换,而不受限于特定供应商的限制。
  • SuprSend 的 Python SDK允许开发人员使用单个触发器轻松触发多通道通知。这对于与多个通道或设备通信的应用程序非常有用。
  • Supsend 不需要任何基础设施设置或维护。它是一种基于云的解决方案,易于使用和扩展。

使用 SuprSend 发送电子邮件的步骤

安装 Suprsend Python SDK

首先,使用以下命令安装 Surprsend Python SDK:

pip install suprsend-py-sdk

要使用 Suprsend 发送通知,您需要一个Workspace Key & Secret (用于身份验证)。您可以修改默认工作流和通知模板,也可以创建新的工作流和模板。

注意:我们在 SuprSend 平台上为本教程创建了示例模板和工作流程。

使用 SuprSend 发送电子邮件的 Python 代码

使用电子邮件添加附件

使用 Suprsend 添加 python 电子邮件附件是小菜一碟。直接通过文件路径将以下代码片段添加到附件中。工作流对象看起来像这样:

使用 Gmail SMTP

Gmail 是最受欢迎的电子邮件提供商之一,这是有充分理由的。它是免费的,易于使用,并且功能丰富。但是您知道您还可以将 Gmail 与 Python 结合使用吗?

对,是真的!您可以使用 Gmail API 通过 Python 发送和接收电子邮件。最好的部分是它甚至没有那么困难。本节将向您展示如何使用带有 Python 的 Gmail 发送电子邮件。

Gmail API 的优势

使用 Gmail API 发送电子邮件有很多好处。也许最明显的好处是它允许您直接从 Gmail 帐户发送电子邮件,这非常方便。

此外,Gmail API 可以提供比其他电子邮件发送方法更可靠和响应更快的体验。并且由于 Gmail API 与其他 Google 服务集成,它可以提供一些其他电子邮件提供商无法比拟的独特功能和优势。

Gmail API 的缺点

使用 Gmail API 有一些缺点:

  • 要使用 Gmail API,您必须使用安全性较低的电子邮件凭据(用户名和密码)。如果您计划使用单独的服务帐户,维护帐户将始终是一个问题。
  • Gmail 对发送电子邮件有以下硬性限制:
  • 每天最大消息数:2,000(多次发送 1,500 条,试用帐户 500 条)
  • 每天总收件人:10,000

由于 Gmail 的缺点,公司避免将其用作可扩展的电子邮件解决方案。

详细了解Gmail API 使用限制

代码片段

电子邮件接口

结论

因此,我们希望我们已经为您提供了使用 Python 发送电子邮件的综合指南。如果您正在寻找一种多渠道可扩展的通知解决方案以及一种使您的开发过程更加简化和高效的方法,请查看 SuprSend。


#email #amazonses #pythonmail


免责声明:介绍部分是人工智能生成的。‍