Ошибка «Mailgun Magnificent API» с Django-Anymail в докере на Digital Ocean - PullRequest
0 голосов
/ 05 апреля 2019

Я запускаю приложение django, работающее в докере, и использую django-anymail для отправки писем через mailgun.

Когда я, например, прошёл процесс забытого пароля, я получаю сообщение об ошибке в django-anymail:

AnymailRequestsAPIError: Неверный JSON в ответе Mailgun API Отправка сообщения на testemail@test.com с info@application.co.uk Ответ API Mailgun 200 (ОК): «Mailgun Magnificent API» @ 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 локально, он работает, и я получаю электронное письмо, но если я запускаю это на контейнере на моей цифровой океанической капле, я получаю ошибку.

Есть ли какая-то конфигурация, которую мне не хватает, чтобы заставить это работать?У меня есть другое приложение django, которое работает на дроплете (без докера), и оно отлично работает с mailgun, использующим ту же настройку.

1 Ответ

0 голосов
/ 05 апреля 2019

Ошибка "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 .«)

...