【问题标题】:"Mailgun Magnificent API" error with Django-Anymail in docker on Digital OceanDigital Ocean 上 Docker 中的 Django-Anymail 出现“Mailgun Magnificent API”错误
【发布时间】:2019-04-05 10:12:11
【问题描述】:

我正在运行一个在 docker 上运行的 django 应用程序 我正在使用 django-anymail 通过 mailgun 发送电子邮件。

当我经历忘记密码的过程时,我在 django-anymail 中遇到错误:

AnymailRequestsAPIError:Mailgun API 响应中的 JSON 无效 从 info@application.co.uk 向 testemail@test.com 发送消息 Mailgun API 响应 200(OK):'Mailgun Magnificent API' @anymail/backends/base_requests.py 在第 106 行的 deserialize_json_response 中

如果我 docker exec -it 到 django 容器上并在 python manage.py shell 中运行以下命令,我可以重新创建此错误

from django.core.mail import send_mail 
customer_email = send_mail('Test','Test','info@*application*.co.uk',["*test@test.com*"],fail_silently=False) 

如果我在本地构建和运行我的production.yml docker 之后运行它,它可以工作并且我收到一封电子邮件,但是如果我在我的数字海洋水滴上的容器上运行它,我会收到一个错误。

为了使它正常工作,我是否缺少配置?我有另一个 django 应用程序只是在一个 droplet(没有 docker)上运行,它可以在使用相同设置的 mailgun 上正常工作。

【问题讨论】:

  • 你的anymail设置是什么?
  • 如果其他人遇到此问题,请务必检查您的 MAILGUN_API_URL 是否有 https://api.mailgun.net/v3 用于 Mailgun 的美国服务或https://api.eu.mailgun.net/v3 用于 Mailgun 的欧洲服务

标签: django docker digital-ocean mailgun django-anymail


【解决方案1】:

错误“Mailgun Magnificent API”很可能是由您的 MAILGUN_SENDER_DOMAIN 中的 # 字符引起的。当您尝试在不支持它们的配置文件格式中使用 line-end cmets 时,通常会发生这种情况,例如 dotenv:

# .env
MAILGUN_SENDER_DOMAIN=mail.example.com  # INVALID: dotenv doesn't allow comment here

如果您升级到django-anymail v6.0,您将收到一条改进的错误消息,使这一点更加明显。

This answer 涵盖了可能导致“Mailgun Magnificent API”的其他情况。)

【讨论】:

  • 非常感谢。这确实是 MAILGUN_SENDER_DOMAIN 的问题。还要感谢您改进标题.. 更有用。周末愉快!
猜你喜欢
  • 2016-11-27
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多