Django Mailgun API возвращает запрет 401
Я установил Django any mail и пытаюсь использовать mail gun с ним для сброса паролей. Я добавил any mail в мои установленные приложения и попытался использовать mail gun как API или smtp сервис. Оба возвращают 401 forbidden
Для использования API почтовых пушек вот мой код:
EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend"
ANYMAIL_MAILGUN_API_KEY = config("MAIL_GUN_DOMAIN_API")
Для MAIL_GUN_DOMAIN_API я пробовал использовать закрытый ключ моей учетной записи и пробовал создать домен и использовать ключ отправки домена. Обе попытки дали одинаковый ответ.
для smtp :
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 я использовал пароль моего домена. Я пробовал все различные порты mailguns и переключался между tls и ssl. ничего из этого не сработало.
Есть идеи, что я делаю неправильно?
Ошибка 401 означает, что ваш ключ API не действителен для письма, которое вы пытались отправить. Есть три вероятных варианта:
Адрес From для отправляемых вами писем не соответствует вашему домену отправки Mailgun. Проверьте, что для адреса
.DEFAULT_FROM_EMAIL
в Django установлен адрес, с которого вам разрешено отправлять. (По умолчанию это "webmaster@localhost", который определенно не будет работать.)Возможно, вы также захотите рассмотреть настройку 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!
Если вы разместили свой домен-отправитель в зоне EU компании Mailgun, вам нужно указать Anymail на серверы API компании Mailgun в EU вместо серверов США по умолчанию. См. настройку Anymail
MAILGUN_API_URL
. (Я не думаю, что это повлияет на SMTP).