3

我们将 ActionMailer 与 SMTP 作为我们的交付方式,并将 Amazon SES 作为我们的外发邮件提供商。

我们想用 DKIM 签署电子邮件。我们怎么能做到这一点?

谢谢

4

3 回答 3

5

我自己还没有通过 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 标头异常要求,这看起来像实现目标的非凡简单方法 - 谢谢约翰!

于 2012-03-21T09:00:51.910 回答
0

您可以将其完全从源代码中取出,让 SES 为您进行 DKIM 签名。效果很好。

https://aws.amazon.com/blogs/aws/simple-email-service-easy-domainkeys-identified-mail-support/

于 2013-02-22T06:35:11.820 回答
0

您可以使用 dkim 项目为您执行此操作:

https://github.com/jhawthorn/dkim

于 2012-03-21T09:00:18.933 回答