sendgrid-demoboxのご紹介

sendgrid-demoboxのご紹介

今回は「sendgrid-demobox」というデモアプリケーションをご紹介します。ソースコードはGitHubで公開していますので、是非セットアップしてお試しください。各環境でのセットアップ方法はREADMEをご覧ください。

このアプリケーションは、SendGridが提供する様々なAPIを使用しています。

また、実行環境およびミドルウェアとしてRubySinatraMongoDBsinatra-rocketioなどを使用しています。

アプリケーションの起動

アプリケーションを起動すると、Web APIを使って自動的にSendGridアカウントのセットアップを行います。そのため、ダッシュボードから手動でAppsやWebhookなどの設定を行う必要はありません。

メールを送る

SendGridでは様々な方法でメールを送信することができますが、今回はWeb APIとSMTP APIを組み合わせて送信しています(SendGridが推奨する方法です)。Web APIはRESTなAPIです。この方法はSMTPと比較してヘッダ長の制限や、文字のエンコードなどを気にする必要が無いため非常に簡単に扱うことができます。

また、SMTP APIを組み合わせることによりメール送信をカスタマイズすることができます。このアプリケーションでは以下の機能を使用することができます。

  • Substitution - メール本文や件名内に、宛先毎に異なる属性情報(宛名など)を埋め込む際に使用します。
  • Bcc - Bccの宛先を指定します。
  • Category - カテゴリを指定します。カテゴリ毎に統計情報を分析する際などに使用します。
  • Unique Args - メール1通毎に識別コードを埋め込み、Event Webhookで取得できる各種イベントと関連付けた処理を行う際などに使用します。
  • Click Tracking - メール本文内のURLのクリックイベントを取得する際に使用します。
  • Open Tracking - 開封イベントを取得する際に使用します。
  • Subscription Tracking - メール本文内に配信停止リンクを追加します。配信停止リンクがクリックされると、そのメールアドレスが配信停止リストに自動的に追加され、次回以降送信されなくなります。
  • Template - Template Engine機能で登録したテンプレートを指定してメール送信します。1通毎にメールのデザインを変更することができます。
  • Footer - メール末尾にフッタを追加する際に使用します。
  • Send at - 送信時刻を指定します。1リクエストあたりの宛先上限を超えて同じタイミングで大量にメールを送信する際などに使用します。

また、Event Webhookを利用して各イベントをアプリケーション側で受信してリアルタイムに表示します。

メールを送る

メールを受ける

「Mailto」リンクをクリックしてParse Webhook用のアドレスにメールを送信すると、SendGrid側で受信したメールの内容をアプリケーションがHTTP(POST)経由で受信することができます。この機能を利用すると、ユーザからのメール受信をきっかけとした処理(例えば、空メール受信によるユーザ登録処理など)がWebアプリケーションを一つ用意するだけで簡単に実現することができます。

Parse Webhookでは以下のようなフィールドを取得することができます。

  • to - 宛先
  • from - 送信元
  • subject - 件名
  • text/html - 本文
  • charsets - 各フィールドの文字コード
  • attachments - 添付ファイル
  • envelope - エンベロープ
  • sender_ip - 送信元IPアドレス
  • dkim - 認証結果
  • SPF - 認証結果
  • headers - メールヘッダ

メールを受ける

ダッシュボード

SendGridの各機能はダッシュボードを通じて操作することもできます。

  • ログの閲覧ができるEmail Activity
  • バウンスリスト、配信停止リストなどの管理ができるEmail Reports
  • 統計データを閲覧できるStatistics
  • メールのテンプレートを編集できるTemplate Engine
  • マーケティングメールの編集と送信ができるMarketing Email
  • 各種Apps、その他設定の変更

さいごに

このアプリケーションを試すには、SendGridのアカウントが必要となりますので、ぜひ新規会員登録(無期限の無料プランもあります)よりお申込みください!
また、SendGridは各言語向けに公式ライブラリを提供しているので、ぜひこちらもご覧ください

参考記事

※X-SMTPAPIは、メール送信機能を拡張するための機能です。SMTPから利用する場合、”x-smtpapi”という拡張ヘッダに値を設定します。Web APIから利用する場合は同じ名前のパラメータに値を設定します。値はJSON形式で構築します。