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 endpoints:API
和 SMTP
您正在使用 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。
我正在尝试使用 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 endpoints:API
和 SMTP
您正在使用 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。