runlot
リファレンスAPI

メール

emailカテゴリの7個のAPI操作を扱います。

メソッドパス説明
POST/v1/hooks/sesSESのバウンス・苦情・配信のWebhook(SNSから呼び出されます、docs/email.md §6.2)
GET/v1/orgs/{orgSlug}/projects/{projectName}/emailメールステータス(runlot email)
POST/v1/orgs/{orgSlug}/projects/{projectName}/emailメールをオンにします(デプロイが "email": true を読み取った後に呼び出します)
DELETE/v1/orgs/{orgSlug}/projects/{projectName}/emailメールをオフにします(runlot email delete)
GET/v1/orgs/{orgSlug}/projects/{projectName}/email/logメールログ(runlot email log)
GET/v1/orgs/{orgSlug}/projects/{projectName}/email/log/{mailId}1通のメールのメタデータ
GET/v1/orgs/{orgSlug}/projects/{projectName}/email/log/{mailId}/rawメールの生メッセージ(message/rfc822)

POST /v1/hooks/ses

これはユーザーが呼び出すパスではありません。Amazon SNSがHTTPSサブスクリプション経由でSESイベントをここに配信します。認証はトークンではなくSNS署名によって行われます。証明書URLが sns.<region>.amazonaws.com 上のhttpsであり、トピックがサーバーの RUNLOT_SES_SNS_TOPIC_ARN と一致する場合にのみリクエストを受け付けます(それ以外は403)。SubscriptionConfirmationSubscribeURL へGETを送信することで自動的に完了します。サーバーにトピックARNがない場合は501を返します。クライアントライブラリはこれを呼び出しません。

operationId sesHook

リクエストボディ: text/plainstring

ステータスコード説明レスポンスボディ
200受信済み(不明なイベントタイプや不明な id も 200 を返します)
400
403SNS の署名が一致しません
501webhook がオフです

GET /v1/orgs/{orgSlug}/projects/{projectName}/email

付与されているかどうか、アドレス、送信者、時間あたりの上限、直近の送受信数(docs/email.md §5)。付与されていなくても addressfrom には値が入ります。これは「オンにするとアドレスはこうなります」という材料です。実際の状態は granted が示します。

viewer以上です。

operationId getEmail

ステータスコード説明レスポンスボディ
200メールステータスEmailStatus
403
404
503no_coreError

POST /v1/orgs/{orgSlug}/projects/{projectName}/email

冪等です。 リクエストボディはありません。アドレスは(<project>.<org>.<mail-domain>)として決定され、上限はプランによって決まります。アドレスは付与時点の名前に固定されます。

有効化すると、ノードは次回の収束時に env.email を接続し、そのアドレス宛のメールはworkerの email() に届きます。送信と受信は同時にオンになります。1つのドメインが両方向の名前になります。

メンバー以上が必要です。email.grant として監査されます。

operationId grantEmail

ステータスコード説明レスポンスボディ
200付与ステータス(既に存在していた場合は既存の値)EmailStatus
403
404
409email_unavailable — このデプロイにはメールドメインがありません。email_address_taken — 別のプロジェクトがすでに同じアドレスを保持していますError
503no_coreError

DELETE /v1/orgs/{orgSlug}/projects/{projectName}/email

そのアドレス宛のメールは550を受け取るようになります。送信元のMTAはバウンスを受け取り、再試行しません。これは冪等です。

管理者以上が必要です。監査イベントは email.revoke です。

operationId revokeEmail

ステータスコード説明レスポンスボディ
204オフになりました
403
404
503no_coreError

GET /v1/orgs/{orgSlug}/projects/{projectName}/email/log

送受信したメッセージごとに1行、時系列の逆順で表示されます(docs/email.md §6.1)。エンベロープ・結果・サイズ・SPF結果が含まれます。生メッセージは …/log/{mailId}/raw にあります。

保持期間はプランの現在値です。Freeでは30日、Proでは365日です(keepDays)。

viewer 以上が必要です。

operationId listMailLog

パラメーター場所必須説明
directionquery不可string空の場合は両方
cursorquery不可string前のページの cursor
limitquery不可integer
ステータスコード説明レスポンスボディ
2001ページMailLogPage
403
404

GET /v1/orgs/{orgSlug}/projects/{projectName}/email/log/{mailId}

プロジェクト外のidは404を返します。idによって他のプロジェクトのログを探ることはできません。viewer以上です。

operationId getMailLog

ステータスコード説明レスポンスボディ
2001通のメールMailLogEntry
403
404

GET /v1/orgs/{orgSlug}/projects/{projectName}/email/log/{mailId}/raw

ヘッダーを含む生メッセージをそのまま返します。受信メールの場合、追加した Received および Authentication-Results ヘッダーが含まれます。送信メールの場合は、リレーに渡された内容から組み立てられます。.eml としてダウンロードされます。生メッセージがない行(hasRaw: false)は404を返します。viewer以上です。

operationId getMailLogRaw

ステータスコード説明レスポンスボディ
200元のテキストstring
403
404

このページの目次