やーまんぶろぐ

気が向いた時にだけ書くブログ

SendGridを使ってrubyでメールを送信する

SendGridを使ってrubyでメール送信してみました。

まずはマニュアルに目を通しましょう。
ドキュメントホーム - ドキュメント | SendGrid

メリット

ウイルス・スパム対策ソフトを導入しなくて良いのが一番のメリットですかね。
これだけでお金を払う価値があると思ってます。

個人的にはサーバーレスなのも嬉しいですね。
せっかくメインのアプリケーションをAWSでサーバレス化しても、メールのためにサーバが増えていくとおいしくないですからね。
f:id:yamano3201:20160418203801p:plain

メール送信

SendGridでは、Web APISMTPでメールを利用できます。
既存の仕組みを置き換える場合など、SMTPで送れるのは嬉しいですね。

置き換えの場合は、SMTPサーバの設定にSendGridサーバとSendGridアカウントの認証情報を指定するだけで良いみたいです。

postfixで実現する場合は、こちらを参考にすればできそうです。
Postfixでメール送信 - ドキュメント | SendGrid

ホントはpostfixで実現したいのでこれだけ試せればいいのですが、せっかくなので他の機能も見ておきます。そして試してみます。

下に試してみたい機能を載せておきます。

  • Web API限定の機能
    • 宛先ごとに異なる文字列を本文や件名に埋め込んで送信する
    • テンプレートを適用して送信
    • マーケティングメール(メルマガ)の一斉送信
  • Web APISMTPの両方で使える機能
    • 配信停止の管理
    • メールの不達管理
    • 統計情報の確認

メール受信

アプリケーションでのメール受信にはInbound Parse Webhook を使います。
Inbound Parse Webhook - ドキュメント | SendGrid

受信したメールをPOSTする作りになってるので、アプリケーションの作りによっては修正が必要ですね。

rubyでメール送信

rubyでメール送信してみましたのでメモしておきます。

アカウント作成

仮登録から10時間ほどでアカウントが作成されました。
新規会員登録 | SendGrid

API Key 取得

ログインしてから、リンク先のCreate API Key ボタンから作成してください。
https://app.sendgrid.com/settings/api_keys

アクセス権もこのとき細かく指定することができます。
APIキーは一度しか表示されないのでメモしておきましょう。

コード


gista3e6a174a0c72f8524483cf151d65109

api_keyには上で取得したAPIキーを、toには自分の使っているgmailを指定しました。

ただ送るだけならfromは任意のアドレスで大丈夫です。

届いたメールを確認

gmailで確認。
f:id:yamano3201:20160418223123p:plain

適当に決めたアドレスからなので、sendgrid.net 経由と書かれていることがわかります。
なりすまし防止を考える場合は、独自ドメインの設定をする必要があります。
独自ドメインを利用するには | ブログ | SendGrid

独自ドメインを利用するためには、Silver以上にする必要があるので9480/月が必要ですね。
f:id:yamano3201:20160418222650p:plain

統計情報の確認

いろいろ統計情報が見れるみたいですね。
統計情報を確認する - ドキュメント | SendGrid

1通送った後に見ると、REQUESTSが1に、UNIQUE OPENSが0になってるのがわかりますね。
f:id:yamano3201:20160418224423p:plain

UNIQUE CLICKSやSPAM REPORTSで、メール本文中のリンクをクリックした回数や、迷惑メールとして報告された件数などがわかります。

最後に

次回はInbound Parse Webhookや独自ドメインの利用など試してみたいですね。

気が向いたら、また書きます。