首页 > 解决方案 > Django 上的 AnyMail 和 MailGun 配置

问题描述

我在 Django 项目上设置 AnyMail + MailGun,但我收到未经授权的响应调用mail_admins

anymail.exceptions.AnymailRequestsAPIError: Sending a message to mail@gmail.com from mailgun@sandboxe6301378bfe741bf99d5684e65852283.mailgun.org Mailgun API response 401 (Unauthorized): 'Forbidden'

这些是我的settings.py配置:

EMAIL_BACKEND = "anymail.backends.mailgun.EmailBackend"

ANYMAIL = {
    "MAILGUN_API_KEY": os.environ.get("MAILGUN_API_KEY"),
    "MAILGUN_API_URL": "https://api.mailgun.net/v3",
    "MAILGUN_SENDER_DOMAIN": "sandboxe6301378bfe741bf99d5684e65852283.mailgun.org"),
}

SERVER_EMAIL = "mailgun@sandboxe6301378bfe741bf99d5684e65852283.mailgun.org"
# SERVER_EMAIL = "mail@gmail.com"
# DEFAULT_FROM_EMAIL = "mail@gmail.com"

ADMINS = [("Admin", "mail@gmail.com"), ]

我可以使用 CURL 发送带有这些配置的电子邮件。我一定在 Django 设置上遗漏了一些东西。

标签: pythondjangomailgundjango-anymail

解决方案


事实证明,我还将api:CURL 片段中的前缀复制到了MAILGUN_API_KEY变量中,但我没有传递DEFAULT_FROM_EMAIL = "mailgun@sandboxe6301378bfe741bf99d5684e65852283.mailgun.org",因此出现了错误。


推荐阅读