SMTP APIの連携
SMTP APIと連携するには、該当するSMTPサーバー情報が必要です。以下の表は、各地域で利用可能なSMTPサーバーのエンドポイントとポート番号を示しています。
| 地域 | SMTP サーバー | ポート |
|---|---|---|
| 欧州 | smtp-api.infobip.com | 587, 465 |
| イギリス | smtp-api-gb1.infobip.com | 587, 465 |
| インド (ムンバイ) | smtp-api-mum.infobip.com | 587, 465 |
| インドネシア | smtp-api-id.infobip.com | 587, 465 |
| MENA (中東・北アフリカ) | smtp-api-ae2.infobip.com | 587 |
| パキスタン | smtp-api-pk2.infobip.com | 587 |
| カタール | smtp-api-qa1.infobip.com | 587 |
| サウジアラビア | smtp-api-sa3.infobip.com | 587 |
| トルコ | smtp-api-tr1.infobip.com | 587 |
| 米国 | smtp-api-us.infobip.com | 587, 465 |
Schrems IIに準拠するには、smtp-api-eu.infobip.com を使用し、利用可能な標準ポートである 587 または465のいずれかを選択します。
ポート587を使用する場合、明示的なSTARTTLSコマンドが必要であるのに対し、ポート465経由の接続は、TLSハンドシェイクがすでに完了していることが前提となります。どのポートを使用する場合でも、TLS通信は必須 となります。
SMTP認証
SMTP認証 (SMTP AUTH) は、許可されたユーザーのみがNTT CPaaS SMTP APIを通じてメールを送信できるようにします。SMTP AUTHは、メッセージ送信を許可する前に有効な資格情報を求めることで、不正アクセスやサーバーの悪用を防ぐのに役立ちます。
NTT CPaaS SMTPは、PLAIN およびLOGIN 認証方式をサポートしています:
- PLAIN - ユーザー名とパスワードを1つのBase64エンコード文字列で送信します。
- LOGIN - ユーザー名とパスワードを個別に送信し、それぞれBase64文字列としてエンコードします。
認証情報は、次の2つの方法で送信できます:
- 基本認証 - NTT CPaaSアカウントのユーザー名とパスワードを使用します。
- APIキー認証 - ユーザー名は常に App で、パスワードはNTT CPaaSアカウントで作成されたAPIキーです。
どちらの場合も、ユーザー名とパスワードは Base64エンコードさ 文字列として送信する必要があります。
OpenSSLなどの一部のライブラリでは、文字Q が行の最初の文字として挿入されると、接続が切断される場合があります。これは、base64で QXBw にエンコードされ、結果的にQで始まることになる App のようなBase64エンコードされたユーザー名を使用する際に問題を引き起こす可能性があります。
この問題を回避するには、OpenSSLで-quietオプションを使用するか、ユーザー名を入力する前に、行の先頭に1つ以上の空白を入れるようにします。
APIキーの使用法の詳細については、API認証 について詳述しているドキュメントをご参照ください。
サポートされているSMTPコマンド
NTT CPaaSのSMTPサーバーは、次のコマンドをサポートしています:
| SMTPコマンド | 説明 |
|---|---|
HELP | サポートされているSMTPコマンドとその使用法に関する情報を返します。 |
HELO | 新しいSMTPセッションを開始します。 クライアントのドメイン名またはホスト名を使用して、SMTPサーバーに対してクライアントを識別します。標準SMTPで使用されます。 |
EHLO | 拡張SMTP (ESMTP) セッションを開始します。 サーバーに対してクライアントを識別し、サーバーでサポートされているESMTP拡張機能の一覧を要求します。 |
STARTTLS | 既存のSMTP接続をアップグレードして、安全な通信のためにTLS (トランスポート層セキュリティ) を使用するようにします。 |
AUTH | ユーザー名とパスワードを使用して、クライアントをサーバーに対して認証します。 PLAIN および LOGIN 認証方式がサポートされています。 |
MAIL | 送信者のメールアドレス ( Envelope Fromとも呼ばれる) を指定します。 FROMパラメーターーに加えて、SIZEパラメーターーもメールのサイズを通知するために使用されます。新しいメールトランザクションの送信プロセスを開始します。 |
RCPT | 受信者のメールアドレス (Envelope toとも呼ばれる) を指定します。 メッセージの各受信者 (To、Cc、Bcc) に対して使用されます。 受信者が複数いる場合は、各アドレスごとにこのコマンドが繰り返されます。 |
DATA | メールのコンテンツ (ヘッダーと本文) の先頭を知らせます。 サーバーは 354応答を返し、クライアントにメッセージデータの送信を促します。 データは、 <CRLF>.<CRLF>を含む 1 行で終了します。 |
RSET | 現在のメールトランザクションをリセットし、指定された送信者または受信者をすべてクリアしますが、SMTP接続は維持されます。 |
QUIT | SMTPセッションを終了し、接続を切断します。 |
NOOP | ヘルスチェックを行います。 |
RFCでは厳密には必須ではありませんが、DATAセクション内のTo およびCc ヘッダーに記載されているすべてのメールアドレスを、SMTPトランザクション中にRCPTコマンドを使用して受信者として指定することが推奨されています。
RCPTを介して提供されたアドレスのみが実際にメッセージを受信しますが、ヘッダーにだけ記載されているアドレスは受信しません。
RFC準拠ヘッダー
NTT CPaaSプラットフォームは、送信用のSMTPメールに RFC準拠ヘッダー を使用することをサポートしています。
広く使用されているヘッダーには、次のようなものがあります:
In-Reply-To- メッセージのスレッド化をサポートしています。References- メッセージスレッドのコンテキストを提供します。List-Unsubscribe- 受信者がメーリングリストの登録を解除できるようにします。List-Unsubscribe-Post- 自動処理のために配信停止機能を拡張します。
オプションのカスタムヘッダー
カスタムヘッダーを使用すると、送信用のSMTPメールに追加情報を含めることができます。次の表には、メールコミュニケーションでよく使用されるカスタムヘッダー名の一覧が記載されています。
| ヘッダー名 | 説明 |
|---|---|
X-IB-Bulk-Id | 送信された一括メッセージを一意に識別するIDです。このフィルターを使用すると、クライアントは1回のリクエストだけで、すべてのメッセージの配信レポートを照会することができます。 |
X-IB-Callback-Data | X-IB-Notify-Urlを通じて送信される追加のクライアントデータです。 |
X-IB-Intermediate-Report | クライアントのコールバックサーバーに送信されるリアルタイムの中間配信レポートです。 |
X-IB-Notify-Content-Type | 希望する配信レポートのコンテンツタイプです。 application/jsonまたはapplication/xmlにすることができます。 |
X-IB-Notify-Url | 配信レポートが送信されるクライアントのコールバックサーバー上の URLです。 |
X-IB-Tracking-Url | 開封およびクリックの通知が送信されるクライアントのコールバックサーバー上のURLです。 詳細については、通知の追跡 について詳述しているドキュメントをご参照ください。 |
X-IB-Track | 開封およびクリックの追跡を有効または無効にします。有効にすると、追跡数の統計が収集され、Webインターフェイスに表示されます。この情報は X-IB-Track-Clicksや X-IB-Track-Opensのパラメーターによって上書きされる場合があります。 |
X-IB-Track-Clicks | メールのクリック追跡を有効または無効にします。 |
X-IB-Track-Opens | メールの開封追跡を有効または無効にします。 |
X-IB-Client-Priority | メールの優先度を設定します。指定可能な値:HIGH、 STANDARD、 LOW。指定しない場合、デフォルトは STANDARD です。優先度の高いメッセージは、優先度の低いメッセージよりも先にお使いのアカウントから送信されます。 |
X-IB-Application-Id | アウトバウンド送信リクエストでアプリケーションを指定するために使用します。通知イベントでも同じ値が返されます。 |
X-IB-Entity-Id | アウトバウンド送信リクエストでエンティティを指定するために使用されます。通知イベントにも同じ値が含まれています。 |
X-IB-Skip-Passive-Storage | パッシブメールストレージ (コンプライアンス、法的要件または監査の目的で使用される長期ストレージ) をスキップするには、 trueに設定します。 falseに設定されている場合または未設定の場合は、アカウントレベルの設定が適用されます。 |
X-IB-Skip-Active-Storage | アクティブメールストレージ(トラブルシューティングまたはサポートに使用される短期ストレージ) をスキップするには、 trueに設定します。 falseに設定されている場合または未設定の場合は、アカウントレベルの設定が適用されます。 |
X-IB-Message-ID | 個々の受信者に送信される各メッセージに割り当てられる一意のIDで、追跡や参照に使用されます。 |