Django和AWS简单电子邮件服务

时间:2018-02-26 04:05:46

标签: django amazon-web-services amazon-ses

我正在尝试启动和运行django网站,我正在尝试启用django的标准密码重置服务。

我的网站由AWS EC2托管,所以我想我会将AWS SES用于我的电子邮件服务。但是,我无法让smtp连接工作。有关如何解决以下错误的任何想法:

异常类型:SMTPSenderRefused 例外值:(530,b'Authentication required','example@example.com')

我看过以下内容,但如果可能的话,我宁愿继续使用django的内置电子邮件后端:

电子邮件设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_PORT = 587 # (I've also tried 25, 465, & 2587)
EMAIL_HOST_USER = ''
EMAIL_PASSWORD = ''
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'example@example.com' # but my real email address

我的EMAIL_HOST_USER和EMAIL_PASSWORD设置为我通过以下说明获得的SMTP凭据:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html

此外,我确保按照以下说明验证我的DEFAULT_FROM_EMAIL和我的域:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html

启用DKIM并更新了我的名称服务器。

真的很感激任何帮助。

更新:

我能够将django电子邮件发送到django-ses第三方库,但我仍然无法弄清楚为什么标准后端无法通过SMTP工作。

我认为我的代码肯定存在问题,因为我将电子邮件客户端从AWS SES切换到Zoho邮件,而且我仍然收到相同的530 Authentication需要的错误。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'support@example.com'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'support@example.com'
EMAIL_PASSWORD = ''

1 个答案:

答案 0 :(得分:1)

2021:Django-3.2.4

不需要诸如 django-sesdjango-amazon-ses 之类的库!!

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my_smtp_username'      # Must create SMTP Credentials
EMAIL_HOST_PASSWORD = 'my_smtp_password'  # Must create SMTP Credentials
DEFAULT_FROM_EMAIL = 'myses@sender.com'

对于EMAIL_HOST,选择SMTP Settings

enter image description here


然后,将 Server Name 置于 EMAIL_HOST

enter image description here


EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'

对于 EMAIL_HOST_USEREMAIL_HOST_PASSWORD,您必须创建 SMTP Credentials

Create My SMTP Credentials按钮:

enter image description here


鉴于SMTP Credentials

enter image description here


然后,将 SMTP Credentials 输入如下:

EMAIL_HOST_USER = 'AKIAWP3TMGZN4OZH5H37'
EMAIL_HOST_PASSWORD = 'BB6dufiw96jJHUTrowXI8R4gcyOI+t1+Skbi51cdHYhV'

*(我已经删除了这些SMTP Credentials


此外,对于 DEFAULT_FROM_EMAIL,请输入一个 verified domainemail address,无论您是否帐户在 sandbox 中。

对于下面的可变域sender.com

enter image description here


以下三个是有效的:(仅使用三个中的一个)

DEFAULT_FROM_EMAIL = 'abc@sender.com' # OR
DEFAULT_FROM_EMAIL = 'test@sender.com' # OR
DEFAULT_FROM_EMAIL = 'myses@sender.com'

但是下面这两个无效:(这些给你错误)

*格式必须是something@sender.com !!

DEFAULT_FROM_EMAIL = 'sender.com' 
DEFAULT_FROM_EMAIL = '@sender.com'

然后,对于下面的可变2 email addresses

enter image description here


仅使用以下两种中的一种:

DEFAULT_FROM_EMAIL = 'hello@gmail.com' # OR
DEFAULT_FROM_EMAIL = 'world@outlook.com'