Ruby(Rails)からメールを送信する必要のある仕事があったので、本採用するかは決めていませんが、Amazon SESをaws-sdk-rubyから使う方法について調査してみました。
■ 準備
1. マネジメントコンソールでEmailアドレスとドメインを登録してください
(ドメインの登録の際は、DKIMの設定も出力すると便利です。Easy DKIMという機能なのですが、ドメインの認証が完了した後、マネジメントコンソールで有効化すると、送信メールにDKIM署名を追加してくれます。迷惑メール扱いになる確率がいくらか減るでしょう。)
※ Request Production Accessするまでは、送信元、送信先ともに登録が必要です。
2. aws-sdk-rubyをインストールする
gem install aws-sdk
■ 手順
単純なので一気に書きます。
# encoding: utf-8
require 'rubygems'
require 'aws-sdk'
require 'nkf'
ses = AWS::SimpleEmailService.new(
:access_key_id => 'YOUR_ACCESS_KEY_ID',
:secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
body_text = NKF.nkf '-jw', <<-EOS
こんにちは。
このメールはテストメールです。
おしまい
EOS
subject = NKF.nkf('-Mw', 'サブジェクトです')
from_email = "FROM_EMAIL_ADDRESS"
to_email = "TO_EMAIL_ADDRESS"
p "Verified?(FROM Email): " + ses.identities[from_email].verified?.to_s
p "Verified?(TO Email): " + ses.identities[to_email].verified?.to_s
p "Verified?(Domain): " + ses.identities['YOUR_DOMAIN'].verified?.to_s
ses.send_email(
:subject => subject,
:to => to_email,
:from => from_email,
:body_text => body_text,
:body_text_charset => 'ISO-2022-JP'
)
■ 参考情報
・
RubyからAmazon SESでメールを送る - プログラマになりたい
詳しいです。ただし、Easy DKIMに関する記載が無い(この記事時点ではEasy DKIMがなかったのかも)ので、DKIM関係は独自署名の方法になっています。これはこれで押さえておいた方がいい情報ですが、Easy DKIMを使う方が楽ではあると思います。
・
AWS SDK for RubyのAPIリファレンス
・
AmazonSES-Easy DKIM設定サポート資料