SendGridとの連携

アプリケーションからのメール送信

SendGridはSMTPとWeb APIの二種類のメール送信機能を提供します。

SendGridは多数の言語向けにクライアントライブラリを提供しています。SendGridはこれを利用する方法を推奨します。 クライアントライブラリを利用せずにSendGridを利用する場合、SendGridはWeb APIを利用することを推奨します。これは、ほとんどのケースで高速に動作し、エンコーディングの面でいくつかの利点があり、簡単に利用できるためです。SMTPは数多くの機能を提供しますが、設定がより難しい方法です。

Web API

以下のような場合、Web APIはSMTPより有利です。

  • ISPが全てのアウトバンドのメールポートをブロックしてHTTPのみ利用可能な場合
  • Web APIはクライアント~サーバ間で多数のメッセージを必要としないため、アプリケーションサイトとSendGridの間で高いレイテンシーが確保できる場合、より高速になります。
  • アプリケーションの動作環境を変更できず、SMTPライブラリのインストールおよび設定ができない場合
  • メールを送信するライブラリを開発している場合。Web APIを利用した方が開発期間を短縮することができます。

SMTP

既存のアプリケーションがSendGridと連携する場合、SMTPの設定を変更するだけで利用できるため、SendGridのSMTPを利用する方が簡単な場合があります。

  • SMTPユーザ名とパスワードをapikey(固定文字列)、SendGridアカウントで作成したAPIキーに変更します。
  • サーバ名をsmtp.sendgrid.netに変更します。
  • 利用可能なポートは25、587、2525(plain/TLS)および465(SSL)です。

各ISPの制限を回避するため、通常はポート587を利用します。

SMTPでは1回の接続につき5,000メッセージまで送信可能です。

SendGridはX-SMTPAPIヘッダによりSMTPの機能を拡張します。詳細はSMTP APIを参照してください。

SMTPAPIが利用できる場合は利用してください。SMTPにより1回の接続につき5,000メッセージまで送信することができ、メッセージ毎に1000人の受信者まで送信することができます。

IPアドレスを直接指定してメール送信することは推奨しません。必ずsmtp.sendgrid.netを指定してください。

smtp.sendgrid.netのIPアドレスは予告なく変更されます。IPアドレスを直接指定していた場合、IPアドレスが変更されるとアクセスできなくなります。

アプリケーションでのメール受信

SendGridはメッセージの保存や、メールボックスの機能は提供しませんが、Inbound Parse Webhookの機能により受信したメールのBodyと添付ファイルを指定したURLにPOSTすることができます。

この機能はメールによるブログ記事の投稿やメールによる自動返信処理などで利用されます。

パワーユーザおよび大量送信者

SendGridを通じてメールを送信するための最も強力な方法は、Postfixなどのローカルメールサーバを次のように設定することです。

  • アプリケーションが送信するメールをキューイングする。
  • スマートホストとしてSendGrid経由でメールを送信する。

この方法はアプリケーション側から見ると、フォールトトレラントサーバにメールを送信する利点を利用して待ち時間を減らすことができます。サーバとSendGridの間のネットワーク接続が失われた場合、アプリケーション側に高度な機能が無くてもローカルメールサーバがメールのキューイングや再送信を行ってくれます。

また、ローカルメールサーバを利用することでコネクションの再利用やパイプライン処理などSMTPプロトコルの複雑な機能を利用することができるため、大量メールを送信する場合に有利です。これらの技術を利用することでメッセージごとに接続して個々のスクリプトで処理を行う場合よりも短時間に大量の送信を行うことができます。