使用 Amazon SES 对 Rails 应用程序进行 DKIM 签名

kam*_*mbi 3 smtp ruby-on-rails dkim amazon-ses

我们使用 ActionMailer 和 SMTP 作为我们的传送方法,并使用 Amazon SES 作为我们的外发邮件提供商。

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

谢谢

Ste*_*pel 5

我自己还没有通过 ActionMailer 与Amazon SES使用DomainKeys Identified Mail (DKIM),但我的处理方法如下:

笔记

如果您使用 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')
Run Code Online (Sandbox Code Playgroud)

更新

John Hawthorn 已使用所需的 SES 异常更新了代码片段(分别参见上面的注释行),确认他明显优秀的 dkim gem 确实是 如果 dkim gem 可以满足提到的 SES/DKIM 标头异常要求,这看起来像实现您目标的非凡简单方法 - 谢谢约翰!

  • 我也在使用 dkim gem,其配置与上面类似。与 aws-ses gem 完美配合,通过 SES API 发送电子邮件。 (3认同)