ドキュメント本文へスキップ
API

SMTP で送信する

SMTP を話すソフトウェアのための、POST /emails と同じ送信です。

接続する

SMTP サーバー経由でメールを送るものなら何でも、OpenEmail 経由で送信できます。フレームワークのメーラー、CMS、監視ツール、プリンターなどです。ユーザー名 openemail と、パスワードとしての API キーでサインインします。キーには emails:send スコープが必要で、キーが渡すメッセージは、そのキーで行う POST /emails と同じ送信です。

設定項目値
ホストsmtp.openemail.uk
ポートSSL/TLS で 465、または STARTTLS で 587
ユーザー名openemail
パスワードemails:send スコープを持つ API キー
サインインPLAIN または LOGIN(多くのソフトウェアが「通常のパスワード」と呼ぶ方式)

暗号化されていない接続は一切受け付けず、ポート 587 では STARTTLS の後にのみサインインできます。API キーでサインインできるのは送信のためだけです。IMAP や POP3 でメールボックスを読むには、アプリパスワードが必要です。

テストメッセージを送信する

メッセージを message.eml として保存し、curl で渡します。From は、キーが送信元にできるアドレスでなければなりません。

message.eml
From: Acme <[email protected]>To: [email protected]Subject: Hello over SMTPMessage-ID: <[email protected]> It works.
ポート 465
curl --url "smtps://smtp.openemail.uk:465" \  --user "openemail:$OPENEMAIL_API_KEY" \  --mail-from "[email protected]" \  --mail-rcpt "[email protected]" \  --upload-file message.eml --crlf
ポート 587
curl --ssl-reqd --url "smtp://smtp.openemail.uk:587" \  --user "openemail:$OPENEMAIL_API_KEY" \  --mail-from "[email protected]" \  --mail-rcpt "[email protected]" \  --upload-file message.eml --crlf

受け付けられたメッセージへの応答は 250 2.0.0 OK queued as で、その後にメッセージの id が続きます。この id は GET /emails/{id} が受け取るものと同じなので、メッセージ、そのイベント、トラッキングは、他の送信と同じように読み取れます。

メッセージが送信になるまで

メッセージは読み取られ、REST の送信と同じ経路で送られます。そのため、バイト単位でそのまま渡されるのではなく、各パートから組み立て直されます。

メッセージでは送信では
Fromfrom。必須であり、キーはこの送信者に対して確認されます。MAIL FROM のアドレスは、指定されていればそれで足ります。
RCPT TOメッセージの配信先で、最大 50 名です。To に記載された受信者は to、Cc に記載された受信者は cc、どちらにも記載されていない受信者は bcc になります。少なくとも 1 名は To に必要です。
Reply-ToreplyTo。最初のアドレスです。
Subjectsubject。
テキストパートと HTML パートtext と html。HTML が cid: として参照している画像は、その位置に埋め込まれます。
添付ファイルattachments: 最大 20 ファイル、合計 5 MB まで。
その他のヘッダーX-*、List-*、Precedence、Auto-Submitted、Importance、Priority、Feedback-ID は保持されます。それ以外のヘッダーはすべて除かれます。
X-OpenEmail-Streamstream: transactional または broadcast。このヘッダーは、メッセージが送り出される前に取り除かれます。

適用されるもの

経路は 1 つなので、REST の送信に適用されるものは、すべてここでも適用されます。

  • キーのスコープと、キーが制限されているアドレスとドメイン。
  • 送信者の確認: From は、送信できるドメインのアドレスであり、キーが送信元にできるアドレスである必要があります。
  • ワークスペースの送信枠と配信停止リスト。
  • 送信元アドレスの署名と、開封とクリックのトラッキング。signature も tracking も指定しない REST の送信と同じです。
  • レーン: 一斉送信レーンが一時停止している間、X-OpenEmail-Stream: broadcast の付いたメッセージは拒否されます。
  • Webhook と配信イベント。どちらも 250 の応答にある id でメッセージを示します。

リトライ

Message-ID のあるメッセージは 1 回だけ送信されます。同じ受信者に対して同じ Message-ID をもう一度渡すと、最初のメッセージの id が返り、何も送信されません。そのため、接続が切れた後に再試行するソフトウェアが 2 回送ることはありません。同じメッセージでも受信者が異なれば、別の送信になります。「冪等性」を参照してください。

応答と上限

応答発生条件
250 2.0.0メッセージはキューに入り、その id が続きます。
535 5.7.8サインインに失敗しました。キーが間違っている、失効している、期限切れである、キーに emails:send がない、または API キーを別のユーザー名で使っている、のいずれかです。
452 4.5.31 通のメッセージに 50 名を超える受信者がいます。メールソフトウェアが、残りを自動的に別のメッセージで送ります。
552 5.3.4メッセージが 25 MB を超えています。
550 5.6.0メッセージをそのままでは送信できません。From がない、To に誰もいない、添付ファイルが多すぎるか大きすぎる、レーンが不明である、のいずれかです。どれに当たるかは応答のテキストに示されます。
550 5.7.1送信が拒否されました。キーがそのアドレスを送信元にできない、ドメインがまだ送信できない、または一斉送信レーンが一時停止している、のいずれかです。
452 4.7.0ワークスペースの送信枠を使い切りました。
451 4.7.11 つのキーから 1 分間に 300 通を超えるメッセージが渡されました。メールソフトウェアは待ってから再試行します。
451 4.3.0当方側の障害です。少し待ってから再試行してください。

送信するものがない接続は 5 分後に閉じられます。1 つの接続で、メッセージをいくつでも続けて送れます。

リクエストログでは

キーが渡したメッセージはすべて、そのキーのリクエストログの 1 行になります。メソッドは SMTP、パスは /emails で、ステータスは REST の送信であれば返っていたものです。キューに入った場合は 202、拒否された場合は同じエラー code とともに 403、422、429 のいずれかになります。GET /keys/{id}/requests?path=/emails は、これらを REST の送信と並べて一覧にします。実在するキーでサインインに失敗した場合は、そのキーのアクティビティに表示されます。