我正在运行在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配合使用时效果很好。
答案 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”的其他情况。)