Python 2 不再受社区支持。我们建议您将 Python 2 应用迁移到 Python 3

适用于 Python 2 的 Mail API 概览

App Engine 应用可代表应用的电子邮件接收地址以及某些拥有 Google 帐号的用户发送电子邮件。应用可以通过不同地址接收电子邮件。应用使用邮件服务发送邮件,以 App Engine 启动并发布到应用的 HTTP 请求形式接收邮件。

发送邮件

Mail 服务可以将电子邮件发送到一个或多个收件人。邮件包含主题、纯文本正文和可选的 HTML 正文。它还可以包含文件附件和一组有限的标头。

您可以将任何电子邮件地址作为收件人。收件人可以位于显示在邮件的“收件人”字段、“抄送”字段中,也可以从邮件收件人中隐藏(“密送”,即 bcc)。

在应用调用 Mail 服务以发送邮件时,该邮件将排入队列并且调用立即返回。Mail 服务使用标准过程连接每个收件人的邮件服务器、传送邮件以及在无法连接到邮件服务器时重试。

谁可以发送邮件

为了安全起见,邮件的发件人地址必须是以下类型之一:

  • 当前已登录的用户的 Gmail 或 Google Workspace 帐号
  • anything@[MY_PROJECT_ID].appspotmail.comanything@[MY_PROJECT_NUMBER].appspotmail.com 格式的任何电子邮件地址
  • 在 Cloud Console 中 Email API 已授权的发件人下列出的任何电子邮件地址

Email API 已授权的发件人列表中的所有电子邮件地址都必须是有效的 Gmail 或 Google 托管的网域帐号。应用管理员可以将以下帐号添加到授权发件人列表中:

  • 他们自己的电子邮件地址
  • 他们是 Owner 或 Manager 的任何群组
  • Google Workspace 网域 noreply@[DOMAIN].com 中托管的应用,前提是 noreply@[DOMAIN].com 是有效帐号(用户或群组)。

此外,Google Workspace 管理的网域的网域管理员可以将其网域中的任何用户添加到已获授权的发件人列表中。

您最多只能添加 50 个已获授权的发件人。

来自 Google Workspace 的邮件

如果您要从 Google Workspace 管理的网域发送电子邮件,则应为您的网域设置 DNS SPF 记录,以表明 Google 是您信任的电子邮件来源。如需了解如何执行此操作,请参阅 Google Workspace 帮助中心中的 SPF 记录

请注意,如果您使用为 Google Workspace 网域设置的别名,则无法从使用该网域别名的电子邮件地址发送电子邮件。

邮件未送达时的退信通知

如果邮件与垃圾邮件、病毒或其他恶意内容的已知签名相匹配,则可能不会被传送。

如果 Mail 服务无法送达邮件,或者收件人的邮件服务器返回退信(例如因为该系统上没有该地址的帐号),则发件人的电子邮件地址可能会收到一则错误消息。应用本身不会收到关于邮件是否成功送达的任何通知。

默认情况下不启用电子邮件退信通知。如需接收电子邮件退信通知,您需要对应用进行配置。如需了解详情,请参阅接收退信通知

邮件和开发服务器

在测试发送邮件的应用功能时,您可将开发服务器配置为直接从计算机发送电子邮件。您可以将开发服务器配置为使用您选择的 SMTP 服务器。或者,在您的计算机上安装有 Sendmail,并且 Sendmail 已经设置好发送电子邮件的情况下,您可以命令开发服务器使用 Sendmail。

如果您没有配置 SMTP 服务器或启用 Sendmail,则您的应用在调用 Mail 服务时,开发服务器会记录邮件的内容。邮件并不会真正地发送。

使用 DKIM(域名密钥识别邮件)进行身份验证

发送邮件时,App Engine 使用网域密钥识别邮件 (DKIM) 标准对网域进行身份验证。如果您的应用从属于 Google Workspace 网域的电子邮件地址发送邮件,则 App Engine 可以对其发送的电子邮件进行加密签名。此签名表明声称来自 emma@example.com 的电子邮件确实来自 example.com。收件人可以检查此签名;如果签名正确,则收件人知道发件人的网域不是仿冒的。

如需对从 Google Workspace 电子邮件地址发送的邮件启用 DKIM 身份验证,请按照 Google Workspace 帮助中心中的相关说明操作。请注意,DKIM 身份验证可能需要长达 48 小时才会对 Google Workspace 网域有效。

您还必须确保您的应用使用自定义网域并且与您的 Google Workspace 网域相同。另请注意,不允许使用包含 subdomain.example.com 等子网域的 Google Workspace 网域。

如果发件人地址属于启用了 DKIM 的 Google Workspace 网域,则 App Engine 将对应用的外发邮件进行签名。此外,必须对发件人地址进行格式设置,以使电子邮件地址的网域部分仅包含小写字母。

配额和限制

如需查看应用的当前配额使用情况,请转到 Google Cloud Console 中的“配额详情”页面。

转到“配额详情”页面

每个邮件服务请求都将计入 Mail API 调用配额。您可以发送的邮件数量、管理员邮件数量以及数据和附件数量也有各自的配额。如需了解更多详细信息,请参阅邮件配额

配额每天清零重计。如果超过每日配额,您将收到超出配额异常。如果需要发送的邮件数量超出配额所允许的数量,您可以使用第三方邮件提供程序,例如 SendGridMailgun

除了配额以外,邮件服务还应遵循以下限额:

限制 数量
传出邮件的最大大小(包括附件) 31.5 MB
传入邮件的最大大小(包括附件) 31.5 MB
将管理员作为收件人时的邮件最大大小 16 KB
授权发件人的最大数量 50

后续步骤