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 недействителен для письма, которое вы пытались отправить. Есть три возможных варианта:

  1. Адрес отправителя для писем, которые вы отправляете, не соответствует вашему домену отправки Mailgun. Убедитесь, что ДжангоDEFAULT_FROM_EMAILнастроен на адрес, с которого вам разрешено отправлять. (По умолчанию используется « [email protected] », что определенно не сработает.)

    Вы также можете заглянуть в AnymailMAILGUN_SENDER_DOMAINв зависимости от того, какие электронные письма вы пытаетесь использовать и как настроена ваша учетная запись Mailgun.

  2. 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!
    
  3. Если вы предоставили свой домен отправки в зоне ЕС Mailgun, вам нужно указать Anymail на серверы API Mailgun в ЕС вместо серверов США по умолчанию. См. AnymailMAILGUN_API_URLпараметр. (Однако я не думаю, что это повлияет на SMTP.)

Другие вопросы по тегам