API Django Mailgun возвращает 401 запрещено
Я установил любую почту Django и пытаюсь использовать почтовый пистолет для сброса пароля. Я добавил любую почту в свои установленные приложения и попытался использовать почтовый пистолет в качестве службы API или smtp. Оба возвращаются обратно 401 запрещено
Для использования API почтовых пистолетов вот мой код:
EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend"
ANYMAIL_MAILGUN_API_KEY = config("MAIL_GUN_DOMAIN_API")
Для MAIL_GUN_DOMAIN_API я попытался использовать закрытый ключ своей учетной записи, а также попытался создать домен и использовать ключ отправки доменов. Оба ответили одинаково.
для смтп:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.mailgun.org'
EMAIL_PORT = 465
EMAIL_HOST_USER = config('MAIL_GUN_USERNAME')
EMAIL_HOST_PASSWORD = config('MAIL_GUN_SMTP_PASSWORD')
EMAIL_USE_TLS = True
для MAIL_GUN_USERNAME Я использовал свой логин домена для MAIL_GUN_SMTP_PASSWORD Я использовал свой пароль домена Я пробовал все почтовые пистолеты с разными портами и переключался между tls и ssl, ничего из этого не работало.
Любые идеи, что я делаю неправильно?
1 ответ
Ошибка 401 означает, что ваш ключ API недействителен для письма, которое вы пытались отправить. Есть три возможных варианта:
Адрес отправителя для писем, которые вы отправляете, не соответствует вашему домену отправки Mailgun. Убедитесь, что Джанго
DEFAULT_FROM_EMAIL
настроен на адрес, с которого вам разрешено отправлять. (По умолчанию используется « [email protected] », что определенно не сработает.)Вы также можете заглянуть в Anymail
MAILGUN_SENDER_DOMAIN
в зависимости от того, какие электронные письма вы пытаетесь использовать и как настроена ваша учетная запись Mailgun.API_KEY или PASSWORD, с которого вы читаете
config()
это неверно. Если вы получаете конфигурацию из файла .env, распространенной ошибкой является попытка включить комментарий в строку с ключом/паролем, что не поддерживается многими версиями .env. Это не сработает:# In a .env file, comments should be on a separate line. MAIL_GUN_DOMAIN_API=mg-key-abcdefg # comment not allowed here!
Если вы предоставили свой домен отправки в зоне ЕС Mailgun, вам нужно указать Anymail на серверы API Mailgun в ЕС вместо серверов США по умолчанию. См. Anymail
MAILGUN_API_URL
параметр. (Однако я не думаю, что это повлияет на SMTP.)