Ошибка "Mailgun Magnificent API" с Django-Anymail в докере на Digital Ocean
Я использую приложение django, работающее в докере, и использую django-anymail для отправки писем через mailgun.
Например, когда я выполняю процесс забытого пароля, я получаю сообщение об ошибке в django-anymail:
AnymailRequestsAPIError: Неверный JSON в ответе API Mailgun Отправка сообщения на testemail@test.com от info @ application .co.uk Ответ API Mailgun 200 (ОК): "Великолепный API Mailgun" @ anymail/backends/base_requests.py в deserialize_json_response в строке 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.yml
Docker локально работает, и я получаю электронное письмо, но если я запускаю это на контейнере на моей цифровой океанической капле, я получаю сообщение об ошибке.
Есть конфигурация, которую я пропускаю, чтобы заставить это работать? У меня есть другое приложение django, которое работает на дроплете (без докера), и оно отлично работает с mailgun, использующим ту же настройку.
1 ответ
Ошибка "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.")