很难表达这个问题以及我做了什么,因为我不知道错误发生在哪里。
我正在使用托管在AWS Elastic Beanstalk和SES上的Django发送电子邮件。 (仅用于密码重置)但是密码重置电子邮件似乎没有发送。
当我尝试按以下方式发送电子邮件时,它仍然有效。
send_mail('Test', 'Email content', 'email@email.com',['email@email.com',])
密码重置电子邮件也在本地发送(它被放入垃圾邮件,但这是另一个问题)
我的电子邮件设置为:
EMAIL_HOST = 'smtp.gmail.com' # mail service smtp
EMAIL_HOST_USER = 'email@email.com' # email id
EMAIL_HOST_PASSWORD = '****' #password
EMAIL_PORT = 587
# EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_ACCESS_KEY_ID = 'ACCESSKEY'
AWS_SECRET_ACCESS_KEY = 'SECRETKEY'
AWS_SES_REGION_NAME = 'eu-west-1'
AWS_SES_REGION_ENDPOINT = 'email.eu-west-1.amazonaws.com'
DEFAULT_FROM_EMAIL= 'email@email.com'
如果相关,我写过email@email.com的任何地方实际上都是同一封电子邮件。
任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
2021:Django-3.2.4
不需要诸如 django-ses
或 django-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
:
然后,将 Server Name
置于 EMAIL_HOST
。
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
对于 EMAIL_HOST_USER
和 EMAIL_HOST_PASSWORD
,您必须创建 SMTP Credentials
。
按Create My SMTP Credentials
按钮:
鉴于SMTP Credentials
:
然后,将 SMTP Credentials
输入如下:
EMAIL_HOST_USER = 'AKIAWP3TMGZN4OZH5H37'
EMAIL_HOST_PASSWORD = 'BB6dufiw96jJHUTrowXI8R4gcyOI+t1+Skbi51cdHYhV'
*(我已经删除了这些SMTP Credentials
)
此外,对于 DEFAULT_FROM_EMAIL
,请输入一个 verified domain
或 email address
,无论您是否帐户在 sandbox
中。
对于下面的可变域sender.com
,
以下三个是有效的:(仅使用三个中的一个)
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
,
仅使用以下两种中的一种:
DEFAULT_FROM_EMAIL = 'hello@gmail.com' # OR
DEFAULT_FROM_EMAIL = 'world@outlook.com'