Rails3のActionMailerを使ってAmazon SESからDKIM署名付きメールを送る

前回のAmazon SESでメールを送ったときにGmailでvia email-bounces.amazonses.comって表示されないようにするの続きです。今度はRails3のActionMailerで同じことをやります。

Gemfileに以下の記述を追加します。

gem "aws-ses", "~> 0.4.4", :require => 'aws/ses'
gem "dkim"

config/initializers/mail_setup.rbとかに以下のように設定してActionMailerを使ってください。
前回作った秘密鍵はconfig直下に置いています。

Dkim::domain            = 'co-meeting.com'
Dkim::selector          = 'ses'
Dkim::private_key       = open("#{Rails.root}/config/ses.key.pem").read

# Don't sign certain headers.
# See: http://docs.amazonwebservices.com/ses/latest/DeveloperGuide/DKIM.html
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')

ActionMailer::Base.add_delivery_method :ses, AWS::SES::Base,
  :access_key_id     => 'SES_ACCESS_KEY',
  :secret_access_key => 'SES_ACCESS_SECRET'

ActionMailer::Base.delivery_method = :ses

終わり。特に難しいことはなくこれだけです。