AWS SES 从 Django App 发送电子邮件失败

AWS SES sending email from Django App fails

我正在尝试使用 SES 发送邮件并且已经设置了邮件配置。现在 SES 运行 处于生产模式 - 而不是沙箱 -。但是在 Django App 中,当我尝试发送邮件时,什么也没有发生。一直在尝试发送,没有错误。

setting.py中进行了配置。

INSTALLED_APPS = [
  'django_ses',
]

EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_SES_REGION_NAME = 'ap-northeast-1'
AWS_SES_REGION_ENDPOINT = 'email-smtp.ap-northeast-1.amazonaws.com'

和电子邮件方法。

def send_mail(request, user, emails, subject, path):
  current_site = get_current_site(request)
  message = render_to_string(f"store/emails/{path}.html", {
    "some": "context"
  })

  send_email = EmailMessage(subject, message, "info@mydomain.com", to=emails)
  send_email.send()

顺便说一下,我已经在 SES 控制台中验证了 info@mydomain.com。当我尝试使用 send test email 选项从 SES 控制台发送电子邮件时,我可以毫无问题地发送。但是在 Django App 中。我不能。

我还需要做其他设置吗?因为我在尝试发送邮件时看不到任何错误弹出。它只是不断尝试发送。但是不能。

AWS SES 提供 two types of endpointsAPISMTP

您正在使用 SMTP 一个

AWS_SES_REGION_ENDPOINT = 'email-smtp.ap-northeast-1.amazonaws.com'

但是 'django_ses.SESBackend' 使用 API 类型。

尝试设置:

EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_SES_REGION_ENDPOINT = 'email.ap-northeast-1.amazonaws.com'

如果您想使用普通的 SMTP 连接,您可能需要将当前后端与 backends.smtp.EmailBackend 交换并设置 SMTP connection parameters