【发布时间】:2012-04-05 17:34:49
【问题描述】:
我们使用 ActionMailer,将 SMTP 作为我们的递送方式,并将 Amazon SES 作为我们的外发邮件提供商。
我们想用 DKIM 签署电子邮件。 我们该怎么做?
谢谢
【问题讨论】:
标签: ruby-on-rails smtp amazon-ses dkim
我们使用 ActionMailer,将 SMTP 作为我们的递送方式,并将 Amazon SES 作为我们的外发邮件提供商。
我们想用 DKIM 签署电子邮件。 我们该怎么做?
谢谢
【问题讨论】:
标签: ruby-on-rails smtp amazon-ses dkim
我自己还没有通过 ActionMailer 使用 DomainKeys Identified Mail (DKIM) 和 Amazon SES,但这是我的处理方法:
注意
如果您使用 Amazon SES SMTP 接口发送电子邮件,并且 您的客户端软件会自动执行 DKIM 签名,您应该 检查以确保您的客户没有签署任何标头 以上所列。我们建议您检查您的文档 软件来准确找出使用 DKIM 签名的标头。
# Configure dkim globally (see above)
Dkim::domain = 'example.com'
Dkim::selector = 'mail'
Dkim::private_key = open('private.pem').read
# UPDATE [John Hawthorn]: SES developer guide recommends against signing these
Dkim::signable_headers = Dkim::DefaultHeaders - \
%w{Message-ID Resent-Message-ID Date Return-Path Bounces-To}
# This will sign all ActionMailer deliveries
ActionMailer::Base.register_interceptor('Dkim::Interceptor')
John Hawthorn 已使用所需的 SES 异常更新了代码片段(分别参见上面的注释行),确认他表面上出色的 dkim gem 确实是
如果 dkim gem 可以满足提到的 SES/DKIM 标头异常要求,这看起来是实现目标的一种非常简单的方法 - 感谢 John!
【讨论】:
DKIM-Signature: 标头字段以防万一。已经存在的垃圾文件夹问题不一定在您开始使用身份验证机制的那一刻就得到解决,而是在 ISP 中建立声誉可能需要一段时间,而且电子邮件声誉通常是一个复杂的问题 - 请查看 SES Whitepaper on Email Best Practices 了解更多信息。
您可以使用 dkim 项目为您执行此操作:
【讨论】:
您可以将其完全从源代码中取出,让 SES 为您进行 DKIM 签名。效果很好。
https://aws.amazon.com/blogs/aws/simple-email-service-easy-domainkeys-identified-mail-support/
【讨论】: