【发布时间】:2013-10-29 20:29:14
【问题描述】:
我正在尝试试验的应用程序允许用户使用 djangos 内置的 PasswordResetForm 重置他们的密码,目前我正在覆盖它以便能够使用 EmailMultiAlternatives 发送 HTML 电子邮件。
它目前的外观和工作正常。
c ={'name':'Shabeer'}
subject = 'Test Amazon SES'
txt_content = loader.render_to_string('registration/password_reset_email.txt', c)
html_content = loader.render_to_string(email_template_name, c)
msg = EmailMultiAlternatives(subject, txt_content, from_email, [user.email]);
msg.attach_alternative(html_content, 'text/html')
msg.send()
所以现在我在 hmarr 的这个 Getting started 示例的帮助下开始了,这是我添加到我的 settings.py 的代码
EMAIL_BACKEND = 'django_ses.SESBackend'
DEFAULT_FROM_EMAIL = 'shabeer@sheffa.com'
AWS_ACCESS_KEY_ID = 'MyAcCeSsKeYiD'
AWS_SECRET_ACCESS_KEY = 'MySeCrEtAcCeSsKeY'
AWS_SES_REGION_NAME = 'us-east-1'
AWS_SES_REGION_ENDPOINT = 'email.us-east-1.amazonaws.com'
AWS_SES_RETURN_PATH = 'shabeer@sheffa.com'
电子邮件通过亚马逊 SES 成功发送给用户。
所以现在这是我的问题。
我试图避免看到"via" followed by a domain name next to the sender's name。
为了实现这一点,我开始遵循指南的下一步DKIM。 :
- 为我的域添加了由 Amazon SES 生成的 DKIM 设置
- 将以下内容添加到
settings.py
DKIM_DOMAIN = 'myDomainName.com'`
-
下载openssl-for windows,并按照命令进行操作
- openssl genrsa -out myDomainName.com.key 512
- openssl rsa -in myDomainName.com.key -out rsa.public -pubout -outform PEM
创建了两个文件:myDomainName.com.key 和 rsa.public
-
将 DKIM_PRIVATE_KEY 添加到
settings.pyDKIM_PRIVATE_KEY = ''' xxxxxxxxxxxxxxxxxxxxxxxxxxx
我的长私钥
xxxxxxxxxxxxxxxxxxxxxxxxxxx
''' -
添加了 DNS 条目
ses._domainkey.myDomainName.com TXT '"v=DKIM1; p=myPublicKey"'
完成以上所有操作后,我运行我的项目并尝试重置我的密码,然后抛出此错误:
Exception Type: KeyFormatError at /password_reset/
Exception Value: Private key not found
我试图了解我错过了什么或出了什么问题,关于如何解决这个问题的一些建议/帮助将非常有帮助。
我是 Django/Python 的新手,所以请多多包涵。
提前谢谢你。
2013 年 10 月 28 日更新:
我仍在尝试找出 django 正在寻找哪个 Private Key,而我已经在我的 settings.py
DKIM_PRIVATE_KEY
2013 年 10 月 29 日更新:
-
在Paul Egan 的帮助下,我更新了我的
DKIM_PRIVATE_KEY在我的settings.py中包含PEM header现在看起来像这样:DKIM_PRIVATE_KEY = '''
-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY----- '''
现在发送的电子邮件没有任何错误,但是我收到的电子邮件仍然显示via amazonses.com
【问题讨论】:
-
大家知道如何克服这个问题吗?
标签: python django amazon-web-services amazon-ses dkim