Digital Ocean上的Docker中的Django-Anymail出现“ Mailgun Magnificent API”错误

时间:2019-04-05 10:12:12

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

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

例如,当我经历忘记密码的过程时,django-anymail中出现错误:

  

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

如果我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泊坞程序后运行此程序,它可以正常工作,并且会收到电子邮件,但是如果我在数字海洋飞沫的容器上运行此程序,则会收到错误消息。

是否缺少配置才能正常工作?我有另一个django应用程序仅在Droplet上运行(没有docker),并且使用相同的设置与Mailgun配合使用时效果很好。

1 个答案:

答案 0 :(得分:0)

错误“ 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,则会收到一条改进的错误消息,使它变得更加明显。

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