メール配信システムをSendGridに移行してみた

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

こんにちは。CS課の馬場です。

みなさんメール配信してますか?
サーバーワークスでは、イベントや勉強会のお知らせ、サービスに関するお知らせを定期的にメール配信しています。

もともと利用していたメール配信システムでは、以下のような悩みがありました。

  • メールの設定・配信完了までにかかる時間を短縮したい
  • 効果測定・レポートを簡単におこないたい
  • 配信停止機能が欲しい

もちろん独自に実装する方法もありますが、弊社のモットーは「作らないSI」なのでクラウドサービスを利用したいですよね。
そんな時、SendGridというメール配信サービスを検証する機会があり、あっという間にファンになったのですが、まだまだファンになりたてなのでどんな機能があるのかを試してみたいと思います。
では早速、簡単にSendgridとはどのようなサービスなのか、ご紹介します。

SendGridとは

SendGridはクラウドベースのメール配信サービスです。
独自にサーバーを運用する必要がなく、大量のメールを高速かつ確実に届けることができます。
また、SMTPだけではなくWebAPIを利用してアプリケーションの一機能として利用する事も可能です。
使い始める際も、Freeプランから用意されていますし、用途に応じて簡単にプランを変更できるので安心です。

既存のメール配信システムで運用していた時は、信頼性の担保や、遅延なくメールを送るためのチューニングに苦労した覚えがあります。
1度に送信できるメールの数に制限があったため、複数回にわけて送信したり、運用でカバーする面もありました。
このような、運用にかかる負荷やコストの削減も移行するにあたっては重要なポイントです。

SendGridには3つのメールを送信する方法があります。

  • SMTP
  • Web API
  • マーケティングメール機能

マーケティングメール機能は、ブラウザからメール送信をおこなえる機能です。
宛先リストを登録、本文を作成、配信スケジュールの設定をブラウザで設定、配信まで完結するのでプログラミングの知識は必要ありません。
また、配信状況や開封状況、クリック状況など知りたい情報をリアルタイムに確認できる機能も備わっています。

アプリケーションへの組み込みの必要がなく、既存のメール配信システムもブラウザで利用していたこともあり、まずは移行負荷も軽いマーケティングメール機能を利用してみたいと思います。
どれくらい簡単にメール配信ができるかは、手順を追って見てみましょう。

アカウントの用意は既にあるので早速SendGridにログインします。
管理画面は英語ですが、日本語メールも問題なく送ることができます。

マーケティングメール機能を使ってみる

メールの設定

Marketing > Legacy Newsletter でDashboardに遷移します。
screencapture-app-sendgrid- 【Create Marketing Email】を選択し、早速メールを作成します。
screencapture-sendgrid-newsletter-wizard-page-1 ※赤で囲っている部分は必須項目です

項目 設定内容
Marketing Email Title ダッシュボードでメールを特定するために利用するタイトルを設定します
Pick a Sender Address 送信者アドレスを選択/作成します
Category カテゴリーを選択/作成します
※メールをグループ化する事ができます
Choose Content Type メールのコンテンツタイプを選択します
Choose how to send your Marketing Email A/Bテストをおこなうかどうか選択します

メールのコンテンツタイプは「HTML+プレーンテキスト」、もしくは「プレーンテキストのみ」を選ぶことができます。
「HTML+プレーンテキスト」を選択すると、テンプレートを利用することができます。
「プレーンテキストのみ」を選択した場合は、一般的なテキストメールとなります。
装飾の必要があまりなく、受信者の環境に依存しないようにメールを送りたい場合はこちらを利用します。
今回は基本的なメール配信をおこなう手順を確認したいので「Plane text only」を選択します。

ちなみにトラッキングの機能を利用するにはHTMLメールを利用する必要があるので、用途に応じて選択しましょう。

宛先の管理・追加

配信先リストを選択します。 screencapture-sendgrid-newsletter-wizard-page-2

項目 設定内容
Select Recipients 既に配信先の登録がある場合は該当のリストを選択します
Create A List 新たに配信先を登録する場合は登録画面に遷移します

Create A List を選択、宛先リストの名前を設定します。
screencapture-sendgrid-newsletter-wizard-page-3

項目 設定内容
List Name 宛先リストを管理するための名前を設定します

宛先リスト登録画面に遷移します。
screencapture-sendgrid-newsletter-wizard-page-4 宛先リストの登録方法を選択しますリストの作成方法は3パターンあります。

  • Upload a list
    • CSV、もしくはTXTファイルをアップロードします
      ※日本語が含まれる場合はUTF-8で作成します
  • Add recipients manually
    • 管理画面上で1件ずつ登録をおこないます
  • External URL
    • 外部サーバ上のCSVファイルを宛先リストとして登録します

screencapture-sendgrid-newsletter-wizardlists-page-5

宛先リストにはメールアドレスの他にも名前や所属といった情報も登録できます。
ヘッダーに設定した名前が自動でカスタムタグとして設定されるので、メール本文に宛先リストに設定した項目を入れ込むことも簡単におこなえます。

タイトルと本文を入力して、確認画面に進みます。 screencapture-sendgrid-newsletter-wizard-page-5 [Custom Tags]に表示されているのが、宛先リストで設定した項目情報から作られたカスタムタグです。
例えば本文中にName項目を可変表示させたい場合は『[Name]』と入力します。

screencapture-sendgrid-newsletter-wizard-page-6 設定した項目をプレビューで確認し、テスト送信の必要があれば【Send A Test】機能で任意のメールアドレスにテストメールを送ります。
最後に送信するタイミングを設定して完了です。
今回は予約配信をおこないたいので、『Schedule』に配信日時を設定します。
※必ずタイムゾーンを設定しましょう

設定が完了すると、メール配信一覧に新規で追加されている事、Statusが『Scheduled』となっている事が確認できます。 screencapture-sendgrid-newsletter-wizard-page-7 配信が完了したら『Sent』に変わり、配信完了した時間も更新されます。
一覧からも配信状況が確認できますが、タイトル下のリンク『Status』からもグラフで確認することができます。 screencapture-sendgrid-newsletter-wizard-page-8 最後に、Dashboard > Suppressions > Bounces に遷移し、バウンスリストを確認します。
このリストでは、正常に配信されなかったアドレス・時間・理由を確認する事ができるため、宛先リストのメンテナンスにも役立ちます。
screencapture-sendgrid-newsletter-wizardlists-page-10

まとめ

今回は最低限の機能を利用して、メール配信をおこないました。
それでも、メールの設定から配信完了までの配信自体にかかる手間や時間は短縮されて大満足です。
移行するならこの機能が使いたい!と思っていた効果測定・配信停止の2つの機能については今回触れられなかったので次回をお楽しみに。

AWS運用自動化サービス「Cloud Automator」