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

问题描述 投票:0回答:1

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

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

AnymailRequestsAPIError:Mailgun API响应中的无效JSON从[email protected][email protected]发送消息Mailgun API响应200(OK):在邮件deserialize_json_response中的'Mailgun Magnificent API'@ anymail / backends / base_requests.py 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',["*[email protected]*"],fail_silently=False) 

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

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

django docker digital-ocean mailgun django-anymail
1个回答
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”的其他情况。)

© www.soinside.com 2019 - 2024. All rights reserved.