aws-sesでbccが効かない
こんばんは,@h3_potetoです.
今日から新しいインターン生が来てくれていて,またちょっと人数が増えました.
にぎやかになるといろいろと楽しくていいですね.
現在,インターファームのサービスの多くは,AWSのサーバーを使っています.
AWSでサービスを運用していると,メールを送るのもAWS内で完結していた方が楽になります.
そのためにAWSにはSESというメール配信サービがあります.
RailsからAWS SES経由でメールを送る場合,それなりの設定をしてやれば,かなり楽にメールを送ることができてしまいます.
そして,それなりに有名なGemとしていろんなところで紹介されているのが,aws-sesです.
https://github.com/drewblas/aws-ses
BCCで指定したアドレスにメールが配信されない
これ,実際に動かし始めるまで気がつかなかったのですが,どうやらActionMailerでbccの指定をしても,メールが配信されてないという報告がありました.
で,ローカルで調べてみたのですがdevelopment環境でsmtpをローカルにして送信している限り,ちゃんと送信されているんですね.
ということはAWS SESの設定なのですが,Toで指定したアドレスには正常に送られているので,どうやらSESの設定ではない.
aws-sesはbcc送信に対応していない
https://github.com/drewblas/aws-ses/issues/16
これ,かなり古い情報なので解消されているかと思ったのですが,どうやら上手く動いていない模様.
結局メソッドを書き換えないと送れないらしく,bccでのメール送信ができない.
aws-sdkでもメール送信メソッドは用意されています.
https://github.com/aws/aws-sdk-ruby
読めばわかりますが,こちらはdelivery_methodの設定を:amazon_sesとしておけば,あとはAWS_ACCESS_KEY_ID他の環境変数を指定しておくだけで勝手にAWS.configやっくれます.
なんて楽な!
そして問題になっていたbccですが,まったく問題なく送信できました.
余談
delivery_method = :amazon_ses
の記述には気づいていたのですが,メソッドの定義がどこにもなくて探すのに苦労しました.
まさかgem内で定義されているメソッドだとは…….