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 は、キーが送信元にできるアドレスでなければなりません。
From: Acme <[email protected]>To: [email protected]Subject: Hello over SMTPMessage-ID: <[email protected]> It works.curl --url "smtps://smtp.openemail.uk:465" \ --user "openemail:$OPENEMAIL_API_KEY" \ --mail-from "[email protected]" \ --mail-rcpt "[email protected]" \ --upload-file message.eml --crlfcurl --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 の送信と同じ経路で送られます。そのため、バイト単位でそのまま渡されるのではなく、各パートから組み立て直されます。
| メッセージでは | 送信では |
|---|---|
| From | from。必須であり、キーはこの送信者に対して確認されます。MAIL FROM のアドレスは、指定されていればそれで足ります。 |
| RCPT TO | メッセージの配信先で、最大 50 名です。To に記載された受信者は to、Cc に記載された受信者は cc、どちらにも記載されていない受信者は bcc になります。少なくとも 1 名は To に必要です。 |
| Reply-To | replyTo。最初のアドレスです。 |
| Subject | subject。 |
| テキストパートと HTML パート | text と html。HTML が cid: として参照している画像は、その位置に埋め込まれます。 |
| 添付ファイル | attachments: 最大 20 ファイル、合計 5 MB まで。 |
| その他のヘッダー | X-*、List-*、Precedence、Auto-Submitted、Importance、Priority、Feedback-ID は保持されます。それ以外のヘッダーはすべて除かれます。 |
| X-OpenEmail-Stream | stream: 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.3 | 1 通のメッセージに 50 名を超える受信者がいます。メールソフトウェアが、残りを自動的に別のメッセージで送ります。 |
| 552 5.3.4 | メッセージが 25 MB を超えています。 |
| 550 5.6.0 | メッセージをそのままでは送信できません。From がない、To に誰もいない、添付ファイルが多すぎるか大きすぎる、レーンが不明である、のいずれかです。どれに当たるかは応答のテキストに示されます。 |
| 550 5.7.1 | 送信が拒否されました。キーがそのアドレスを送信元にできない、ドメインがまだ送信できない、または一斉送信レーンが一時停止している、のいずれかです。 |
| 452 4.7.0 | ワークスペースの送信枠を使い切りました。 |
| 451 4.7.1 | 1 つのキーから 1 分間に 300 通を超えるメッセージが渡されました。メールソフトウェアは待ってから再試行します。 |
| 451 4.3.0 | 当方側の障害です。少し待ってから再試行してください。 |
送信するものがない接続は 5 分後に閉じられます。1 つの接続で、メッセージをいくつでも続けて送れます。
リクエストログでは
キーが渡したメッセージはすべて、そのキーのリクエストログの 1 行になります。メソッドは SMTP、パスは /emails で、ステータスは REST の送信であれば返っていたものです。キューに入った場合は 202、拒否された場合は同じエラー code とともに 403、422、429 のいずれかになります。GET /keys/{id}/requests?path=/emails は、これらを REST の送信と並べて一覧にします。実在するキーでサインインに失敗した場合は、そのキーのアクティビティに表示されます。