【问题标题】:How to add custom email headers in Google App Engine Mail API如何在 Google App Engine Mail API 中添加自定义电子邮件标头
【发布时间】:2019-12-24 12:44:10
【问题描述】:

我需要有关如何在使用 GAE 的邮件 API (Python) 发送电子邮件时添加多个自定义电子邮件标头的帮助,即 Message-id、person-id 等。

但不知何故,我在文档中没有看到它:https://cloud.google.com/appengine/docs/standard/python/refdocs/google.appengine.api.mail

我可以使用以下方法接收电子邮件并阅读自定义电子邮件标题: mail_message.original.getitem('mail_header')

但我不知道如何发送带有自定义电子邮件标题的电子邮件。

这是我用来发送电子邮件的代码:

mail.send_mail(sender=sender_address,
               to="handsome_me@yahoo.com",
               subject="gwapo",
               body="Hi")

【问题讨论】:

    标签: python email google-app-engine gmail-api email-headers


    【解决方案1】:

    我正在开发 devselz.com 服务,该服务允许每月发送无限制的电子邮件。它使用带有私人服务器的 P2P,用户可以在其中使用自己的服务器(通过安装 devselz 提供的紧凑型 SMTP。)

    这里是文档:https://devselz.com/support/

    【讨论】:

      【解决方案2】:

      您好像错过了文档中的这一行:

      PROPERTIES = set(['body', 'amp_html', 'sender', 'to', 'cc', 'bcc', 'attachments', 'headers', 'html', 'reply_to', 'subject '])

      您可以提供包含自定义标头列表的headers 参数。

      查看来源,headers 参数受以下限制:

      • 必须是字典
      • 所有值都必须是字符串
      • 所有键都必须是 ASCII 码
      • key应该在以下白名单中:Auto-Submitted, In-Reply-To, List-Id, List-Unsubscribe, On-Behalf-Of, References, Resent-Date, Resent-From, Resent-To。李>

      恐怕您无法使用 AppEngine 覆盖 message-id,因为它不在 HEADERS_WHITELIST 中。我忘记了 AppEngine 有多残缺,你可能想检查一下third-party email services。我使用过mailgun,只要它们以X- 为前缀(只需在有效负载中包含h:X-My-Arbitrary-Header),它们就允许任意标题。来自AppEngine docs

      使用第三方服务发送消息

      Python 2.7/3.7 |Java 8/11 |PHP 5/7 |Ruby |Go 1.9/1.11/1.12 |Node.js App Engine 上的 Python 3.7 应用程序可以使用第三方公司发送电子邮件、SMS 消息或拨打和接听电话。例如,您可以发送电子邮件以确认业务交易、确认用户帐户的创建或发送营销通讯。

      此页面列出了一些为 App Engine 上的 Python 3.7 应用程序提供通信服务和客户端库的公司示例。

      注意:这些第三方公司提供的服务不在 App Engine 服务水平协议的范围内。

      邮筒

      Mailgun 提供 RESTful API 和客户端库来发送电子邮件。作为 GCP 项目用户,您每月的前 30,000 条消息都是免费的。请参阅注册页面上的每月定价计算器,了解额外消息和批量折扣的定价。

      了解有关 Mailgun 的更多信息:

      ...

      发送网格

      您可以使用 SendGrid 为 App Engine 上的电子邮件提供动力。 SendGrid 可以提高您的可传递性,并让您了解您的应用程序发送的电子邮件实际发生的情况。您可以使用 SendGrid 界面或其 API 查看有关打开、点击、取消订阅、垃圾邮件报告等的统计信息。

      App Engine 客户可以通过 Google Cloud Platform Console 注册 SendGrid 电子邮件 API 计划,每月免费发送 12,000 封电子邮件。请注意,对于注册付费帐户的客户,Google 会获得报酬。

      了解有关 SendGrid 的更多信息:

      我不隶属于其中任何一个,并且原始页面提到了其他服务,我引用 mailgun 是因为我已经使用过它并且知道它可以工作,而 sendgrid 是因为 OP 提到了它。

      【讨论】:

      • 哦,谢谢!我错过了!我会尝试一下,但这很可能是答案。 :)
      • 检查我的更新,我不确定你能否覆盖message-id,因为它不在白名单中。
      • 似乎它允许您添加标题,但不能添加自定义标题。它还接受 Dictionary 对象。第一个错误:“标题类型无效。应该是字典。”当我使用字典对象时,我得到了第二个错误:“标题“x-caller-number”是不允许的。“嗯...
      • 没错,我使用的是 sendgrid 并且能够添加自定义标头,但是客户端想要一些更改,我正在再次探索邮件 api:/ 看起来邮件 api 不会让你添加自定义邮件标题。
      • @JamesChing 是的,我认为您将不得不使用像 sendgrid 或 mailgun 这样的第三方服务。我只用过mailgun。
      猜你喜欢
      • 2014-10-31
      • 2019-10-22
      • 1970-01-01
      • 2016-07-11
      • 2016-07-08
      • 2018-12-15
      • 2012-04-10
      • 1970-01-01
      • 2012-01-20
      相关资源
      最近更新 更多