简体   繁体   中英

“Mailgun Magnificent API” error with Django-Anymail in docker on Digital Ocean

I am running a django application running on docker and I am using django-anymail to send emails via mailgun.

When I go through for example a forgot my password process I am getting an error in django-anymail:

AnymailRequestsAPIError: Invalid JSON in Mailgun API response Sending a message to testemail@test.com from info@ application .co.uk Mailgun API response 200 (OK): 'Mailgun Magnificent API' @ anymail/backends/base_requests.py in deserialize_json_response at line 106

I am able to re-create this error if I docker exec -it onto the django container and run the following in a 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) 

If I run this after building and running my production.yml docker locally it works and I get an email but if I run this on the container on my digital ocean droplet I receive an error.

Is there a configuration I am missing in order to get this working? I have another django application just running on a droplet(no docker) and it works fine with mailgun using the same setup.

The error "Mailgun Magnificent API" is most likely caused by a # character in your MAILGUN_SENDER_DOMAIN. That often happens when you try to use line-end comments in a config file format that doesn't support them—like dotenv:

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

If you upgrade to django-anymail v6.0 , you'll get an improved error message that makes this more obvious.

( This answer covers other situations that can lead to " Mailgun Magnificent API .")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM