SendGridとは?SMTPメール送信の基本とニュースレター配信チュートリアル
「SMTP」という言葉を耳にしたことはありますか?SMTPは、電子メールメッセージを扱うための一般的な手法です。
この記事では、SMTPとは何か、そしてSendGridのようなSMTPプロバイダーを使って、自分のアドレスからメールを送信する方法をわかりやすく解説します。
SMTPとは何か?
SMTP(Simple Mail Transfer Protocol:シンプル・メール・トランスファー・プロトコル)は、インターネット上のサーバーがメールメッセージを送信するための仕組みです。例えば、Gmailでメールを送信する場合、メールクライアントはSMTPを使ってそのメッセージをサーバーへ送ります。その後、サーバーも同様にSMTPを使って、受信側のサーバーへメールを転送します。
技術的な詳細に立ち入らずに考えるなら、SMTPは「メールサーバー」だと捉えるのが最も簡単です。
SendGridとは何か?
SendGridはSMTPサービスプロバイダーの一つで、実際にfreeCodeCampがQuincyの週刊ニュースレターを配信する際にも利用されている実績あるサービスです。
多くのSMTPプロバイダーと同様に、SendGridは自社のメールサーバーを貸し出し、ユーザーのメール送信を支援します。大量のメールを手動で送るには膨大な時間と労力が必要となるため、これは非常に有効な選択肢となります。
SendGridアカウントの作成方法
SendGridのサービスを利用する最初のステップは、アカウントの作成です。SendGridの公式サイトにアクセスして登録しましょう。複数の料金プランが用意されていますが、少なくともこのチュートリアルの範囲では無料プランで十分です。
ただし、メールリストが拡大していくと、上位プランの追加機能が必要になる場合があります。
サインインすると、デフォルトのダッシュボード画面が表示されます。

ドメインまたはメールアドレスをSendGridに設定する方法
ダッシュボードから「Settings(設定)」を選択し、ドロップダウンメニューから「Sender Authentication(送信者認証)」を選びます。送信者認証の設定では、どのメールアカウントからの送信を許可するかをSendGridに伝えます。
ここには2つのアプローチがあります。独自ドメインを持っている場合は「Domain Authentication(ドメイン認証)」を設定できます。一方、Gmailなどの個人メールアドレスを使用する場合は、「Single Sender Authentication(単一送信者認証)」を設定する必要があります。
自分に合った方を選択し、SendGridの案内に従って設定を進めてください。完了すると、以下のような画面になります。

SendGridのAPI経由でメールを送信する方法
実際のメール送信は、SendGridのAPIを通じて行われます。APIを使用する前に、まずAPIキーを作成する必要があります。
ダッシュボードから「Settings(設定)」を選択し、「API Keys」を選びます。「Create API Key」を選択して、キーに付与する権限を指定します(筆者は問題を避けるためフル権限を付与しました)。
キーを取得したら、後から再度アクセスできなくなるため、必ず安全な場所に保存しておきましょう。

APIキーが準備できたら、/mail/sendエンドポイントを使用するコードをセットアップします。コードを手動で書いてもよいですし、SendGridのNode.jsパッケージなどのヘルパーライブラリを利用することもできます。
Node.jsパッケージを使用する場合、メールの各値は次のように設定します。
to:送信先のメールアドレスfrom:送信元のメールアドレス。送信者認証の設定と一致させる必要がありますsubject:メールの件名text:プレーンテキスト形式で送る場合のメール本文html:HTML形式で送る場合のメール本文
なお、生のAPI呼び出しではプロパティ名が異なり、他のヘルパーライブラリでも同様に異なります。必ず使用するアプローチに応じた公式ドキュメントを参照してください。
SendGridでダイナミックテンプレートを使う方法
別の選択肢として、API呼び出し内でメール本文を直接送る代わりに、ダイナミックテンプレートを使ってコンテンツを生成することができます。
ダイナミックテンプレートでは、送信するメールのコンテンツを事前に設定でき、Handlebars機能を使って特定のデータフィールドを柔軟に置き換えられます。
ダイナミックテンプレートを作成するには、ダッシュボードから「Email API」→「Dynamic Templates」を選択します。次に「Create a Dynamic Template」をクリックすると、作成したテンプレートが下に表示されます。
テンプレートをクリックし、「Add Version」を選択してテンプレート選択画面を開きます。空白のテンプレートを選び、使用したいエディターの種類を選択します(筆者はコードエディターを使用しています)。

メールの内容を記述し、{{name}}のようなプレースホルダーを動的データ用に埋め込むことができます。これらのプレースホルダーは、メール送信時のAPI呼び出しを通じて値が渡されます。
レンダリング結果を確認したい場合は、「Test Data」タブを使ってプレースホルダー用のサンプルデータを追加してみましょう。
SendGridのAPIでブロック/バウンス/スパム情報を取得する方法
配信できないメールを追跡することは、メール運用において非常に重要です。SendGridはこれを追跡するためのツールを提供しており、そのデータは3つの異なるダッシュボードビュー(プログラムでデータを解析したい場合はAPIエンドポイント)から確認できます。
Blocked(ブロック):受信側メールプロバイダーのポリシーによって拒否されたメール。外部からの通信を受け付けない大学のメールアドレスや、メールサーバーが見つからなかった(DNS解決できなかった)メールなどが該当します。Bounced(バウンス):サーバーには届いたものの返送されたメール。メールサーバーは存在するが特定のユーザーが存在しない場合や、受信箱が容量上限に達している場合などに発生します。Spam(スパム):おそらく最も注意深く監視すべき項目です。ユーザーがあなたのメールを受信し、プロバイダーに対してスパムとして報告したときに記録されます。これは送信者としての評判に直接影響するため、以前のメールをスパムとしてマークした相手に再度メールを送らないことが極めて重要です。
その他の注意点
送信者としての評判について言えば、SendGridは「Sender Reputation(送信者評価)」というトップレベルの指標を提供しています。この指標はプラットフォーム上でのあなたの活動を集計したもので、メールプロバイダーがあなたのメールをどう扱う可能性があるかを大まかに把握するのに役立ちます。
評価が低いと、メールが自動的にスパムとして判定されたり、最悪の場合はIPアドレスごとブロックされることもあります。
また、SendGridの無料プランを利用している場合、共有IPアドレスを使用することになります。つまり、他の顧客も同じIPからメールを送信しており、彼らの行動があなたの評判に悪影響を及ぼす可能性がある点に注意が必要です。
大量のメールを送信する予定がある場合は、専用IPアドレスを購入して評判を保護することをおすすめします。
まとめ
この記事を通じて、SendGridとそのサービスについて理解が深まったのではないでしょうか。これで自分のメールを送り始める準備が整いました。
メールニュースレターの開始を計画している方は、効果的なメールニュースレターの作成方法を解説した記事もぜひ参考にしてみてください。
-
メールマガジンを立ち上げてわかったこと
私は学ぶことが大好きで、構築することが大好きです。私は SaaS ソフトウェアのプロダクト マネージャーとして働いており、地元のパン屋の e コマース ビジネスから新婚旅行に関する Web サイトまで、数多くの Web サイトを構築してきました。 先週まで、メール ニュースレターを作成して開始したことはありませんでした。以下は、私がメール ニュースレターを立ち上げたときの経験談と、私が見つけた主な学習内容です。 私が学んだことを使用して、独自のサービスを立ち上げ、途中でいくつかの落とし穴を回避できることを願っています. 問題と機会を見つける方法 地域の COVID-19 ロックダウ
-
SendGrid API を使用してメール ニュースレターを送信する方法
何年もの間、Quincy Larson は、Amazon SES を利用した freeCodeCamp の Mail for Good プラットフォームを通じて、毎週のメールニュースレターを送信しました。 彼は最近、このプロセスを SendGrid に移行しました。この記事では、これを実現するためのツールをどのように構築したかを紹介します。 SendGrid アカウントの設定方法 最初のステップは、SendGrid に登録してアカウントを設定することです。このチュートリアルでは、無料利用枠で十分です。 アプリケーションをスケールアップすると、プラットフォームで利用可能なメールの制限を増