【问题标题】:How to use Mailjet from Google App Engine如何从 Google App Engine 使用 Mailjet
【发布时间】:2020-01-01 13:45:05
【问题描述】:

我正在将 Mailjet 集成到我的 Google App Engine 应用程序中。我可以从本地开发服务器成功发送电子邮件。 但是,当我部署我的应用程序并尝试发送电子邮件时,Mailjet 客户端库在尝试连接到 Mailjet REST API 时显然会遇到错误。

由NewConnectionError(': 无法建立新连接: [Errno -3] 名称解析临时失败'

我基本上遵循了
https://cloud.google.com/appengine/docs/standard/python/mail/sending-messages

https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27

我添加的用于集成 mailjet 的代码。
requirements.txt:

certifi==2019.6.16
chardet==3.0.4
idna==2.8
mailjet-rest==1.3.3
requests==2.22.0
urllib3==1.25.3

app.yaml:

...
libraries:
- name: ssl
  version: latest

main.py:

from mailjet_rest import Client
...
#calling this function to send email
def mailjet_sendmail(to_address, subject, body):
    api_key = '***'
    api_secret = '***'
    mailjet = Client(auth=(api_key, api_secret), version='v3.1')
    data = {
      'Messages': [
        {
          "From": {
            "Email": "noreply@mydomain.com",
            "Name": "mydomain.com"
          },
          "To": [
            {
              "Email": to_address,
            }
          ],
          "Subject": subject,
          "TextPart": body,
        }
      ]
    }
    result = mailjet.send.create(data=data)

当我调用 mailjet.send.create 时,错误日志中显示以下异常:

ApiError: HTTPSConnectionPool(host='api.eu.mailjet.com', port=443): Max retries exceeded with url: /v3.1/send (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x2a66ef5e1950>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

        at api_call (/base/data/home/apps/s~***/20190828t114640.420634513089712020/mailjet_rest/client.py:110)
        at create (/base/data/home/apps/s~***/20190828t114640.420634513089712020/mailjet_rest/client.py:62)
        at mailjet_sendmail (/base/data/home/apps/s~***/20190828t114640.420634513089712020/main.py:80)
        at post (/base/data/home/apps/s~***/20190828t114640.420634513089712020/main.py:379)
        ...

它似乎无法解析 api.eu.mailjet.com。

我需要做什么才能在 Google App Engine 中启用 DNS 查找吗?有人可以展示一个完整的示例吗?

请注意,完全相同的代码可以在我的运行本地开发服务器的 PC 上运行。

谢谢

弗雷德

【问题讨论】:

    标签: python google-app-engine mailjet


    【解决方案1】:

    经过进一步搜索,我实际上找到了自己问题的答案。

    唯一的问题是没有结算帐户与该项目相关联。其余的一切都正确完成。

    希望这对其他人有所帮助。

    弗雷德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      相关资源
      最近更新 更多