1

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

例如,当我经历忘记密码的过程时,我在 django-anymail 中收到错误消息:

AnymailRequestsAPIError:Mailgun API 响应中的 JSON 无效从 info@application.co.uktestemail@test.com 发送消息Mailgun API 响应 200(OK):'Mailgun Magnificent API'@anymail/backends/base_requests.py in deserialize_json_response at line 106

如果我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.ymldocker 之后运行它,它可以工作并且我收到一封电子邮件,但是如果我在我的数字海洋水滴上的容器上运行它,我会收到一个错误。

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

4

1 回答 1

3

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

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

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

这个答案涵盖了其他可能导致“ Mailgun Magnificent API ”的情况。)

于 2019-04-05T19:09:20.963 回答