ホームに戻る

SMTPDog 開発者ドキュメント

ドメイン検証、SMTP と Email API、API キー、Webhook の署名検証、トラブルシューティングまで、わかりやすい導入ガイドです。

03 · email api

Email API

標準HTTPで接続し、リクエスト、受付結果、メール状態を確認します。

1. 認証と接続先

送信・照会はAuthorization: Bearer <API Key>を使用します。originとプロキシ接頭辞は確認が必要です。ページの言語接頭辞をAPIパスに付けないでください。Keyはサーバー側で管理します。例は標準HTTPで、SMTPDog SDKではありません。

2. メールを1通送る

POST /v1/mail/sendはJSONを受け取ります。fromとtoは単一アドレス文字列で、配列ではありません。テンプレートなしではsubjectとtextまたはhtmlが必要です。cc、bcc、attachments、一括・予約送信には対応していません。

フィールド / 設定型 / 状態説明
fromstring送信者1件、Name <addr> 形式も可、検証済みドメイン、名前は100文字まで
tostring受信者1件、配列不可
subjectstringテンプレートなしでは必須、CR/LF不可
html / textstringテンプレートなしではどちらかの本文が必要。htmlとtextの両方の送信を推奨します。プレーンテキスト版があると迷惑メール判定されにくくなります
reply_tostring任意、返信先メールボックス1件
headersmap<string,string>任意、List-Unsubscribe・List-Unsubscribe-Post・Auto-Submittedのみ
template_iduint64任意、自分のテンプレートID
variablesmap<string,string>任意、文字列値の変数
curl -X POST "${SMTPDOG_API_ORIGIN}/v1/mail/send" \
  -H "Authorization: Bearer ${SMTPDOG_API_KEY}" \
  -H "Content-Type: application/json" \
  --data '{
    "from": "sender@example.com",
    "to": "recipient@example.com",
    "subject": "Welcome to your product",
    "text": "Your message goes here."
  }'

3. 受付と状態照会

202はmessage_idとqueuedを返します。GET /v1/mail/{message_id}でアカウント所有の状態を照会します。created_atは必須、delivered_atとsmtp_responseは省略可能です。sentはノード受付の意味にもなり、受信箱・開封確認ではありません。ドメイン制限Keyでも照会はアカウント単位です。

フィールド / 設定型 / 状態説明
queuedstringキュー受付
sendingstring送信処理中
sentstringノード受付等、受信箱保証なし
deferredstring一時遅延、後の状態を確認
bouncedstringバウンス
failedstring送信失敗
{
  "message_id": "00000000-0000-4000-8000-000000000000",
  "status": "queued"
}

4. 既存テンプレートを使う

template_idは自分のアカウントのものを使います。subject、html、textはテンプレートに置換後、検証されます。variablesは文字列値です。{{name}}の単純置換で、未指定は残り、HTML値はエスケープされます。ループ・条件式はありません。実際に作成したIDを使ってください。

{
  "from": "sender@example.com",
  "to": "recipient@example.com",
  "template_id": 123,
  "variables": {
    "name": "Example recipient"
  }
}

5. エラーと再試行

通常のエラーはcodeとerrorです。codeで判定し、errorの5言語対応はありません。権限・設定エラーを繰り返さないでください。タイムアウトしても受付済みの場合があります。冪等キーや再送APIがなく、重複送信・消費の可能性があります。失敗時の枠返還も保証されません。

フィールド / 設定型 / 状態説明
400 invalid_requestHTTP型、件名、本文を確認
401 api_key_invalidHTTPKeyとアカウントを確認
403 domain_unverified / api_key_domain_forbidden / content_blockedHTTP検証・範囲・内容を確認
404 template_not_found / message_not_foundHTTPIDと所有アカウントを確認
429 quota_exceededHTTP総・日・時間上限を確認、無条件再試行しない
500 internal_errorHTTP状況を保存して相談、部分処理の可能性あり