ホームに戻る

SMTPDog 開発者ドキュメント

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

05 · domains dns

ドメイン検証とDNS設定

アカウントに生成されたTXTレコードで送信ドメインの所有権を検証します。

1. 追加前に確認

追加には有効なパッケージと利用可能なノードが必要です。max_domainsは上限で、技術的な無制限ではありません。複数ドメインは現在の枠を共有します。ASCII FQDNを使い、競合・上限・ノードの問題を解決してから再試行してください。

curl -X POST "${SMTPDOG_API_ORIGIN}/domains" \
  -H "Authorization: Bearer ${SMTPDOG_SESSION_TOKEN}" \
  -H "Content-Type: application/json" \
  --data '{"domain_name":"example.com"}'

2. 実際のTXTレコードを使う

作成レスポンスまたはGET /domains/{id}でtype、name、valueを取得します。DKIM selector・公開鍵・SPF includeは実際の値を使ってください。公開用の仮TXTはありません。DNS事業者の相対ホスト名仕様を確認し、既存SPFは上書きや複数登録せず統合を確認します。

フィールド / 設定型 / 状態説明
typestring現在はTXT
namestring完全な返却名を使い、相対Host仕様を確認
valuestring返却DKIM鍵・SPFを使用、仮データ不可
type:  TXT
name:  <use the actual dns_records[].name>
value: <use the actual dns_records[].value>

3. DNS プロバイダーでレコードを追加する

送信ドメインごとに、専用の DKIM セレクター、公開鍵、SPF レコードがアカウントに発行されます。これらを DNS プロバイダーで TXT レコードとして追加し、コンソールで検証を実行してください。

  1. STEP 01 · レコードを取得
    コンソールでドメインを追加

    コンソールでドメイン(またはサブドメイン)を追加すると、type、name、value を含む専用の dns_records が返されます。

  2. STEP 02 · TXT レコードを追加
    DNS プロバイダーで作成

    DNS プロバイダーにサインインし、各レコードを TXT として追加します。ホスト欄が相対名を求めるかどうかに注意してください。

  3. STEP 03 · 検証
    all_passed を確認

    反映を待ってからコンソールで「検証」を実行します。SPF と DKIM のチェックがすべて通れば(all_passed が true)、送信できます。

DNS プロバイダー別の設定手順

ホスト欄にルートドメインが自動で付くかどうかは、プロバイダーによって異なります。お使いのものを選んでください。

1. 設定画面への行き方

Cloudflare ダッシュボード → ドメインを選択 → DNS → Records → Add record。

2. ホスト名(Host / Name)の入力

Name には、SPF のようなルートドメインのレコードなら @、サブドメインなら mail のようなプレフィックスを入力します。DKIM は相対部分の <selector>._domainkey を入力します。完全な名前を入力しても Cloudflare が正規化します。

3. レコードタイプと値

Type は TXT を選び、コンソールに表示された値をそのまま Content に貼り付けます。前後に余分な空白を入れないでください。

4. TTL と反映時間

TTL は Auto のままで構いません。TXT レコードはプロキシされません。通常はすぐ反映されますが、数分見てください。

各プロバイダーのコンソールは画面構成が変わることがあります。表記が異なる場合も、相対ホスト、タイプは TXT、値はそのまま、という規則に従ってください。

ホスト名の変換早見表

プロバイダーがルートドメインを自動で付ける場合、コンソールが返す完全な名前を相対ホストに変換します。

ケースコンソールが返す name入力するホスト備考
ルートドメインの SPFexample.com@@ はルートドメインを表します。SPF がすでにある場合は、2 つ目を作らず統合します。
サブドメインの SPFmail.example.commail末尾の .example.com を除き、サブドメインのプレフィックスだけを入力します。
ルートドメインの DKIM<selector>._domainkey.example.com<selector>._domainkeyコンソールが返した selector を使い、ルートドメイン部分を除きます。
サブドメインの DKIM<selector>._domainkey.mail.example.com<selector>._domainkey.mailサブドメイン部分(.mail)は残し、末尾の .example.com だけを除きます。

よくある落とし穴

1. ホストごとに SPF は 1 つ:同じホストに v=spf1 の TXT レコードを複数置くことはできません。他のメールサービスの SPF がすでにある場合は、コンソールの include をそこへ統合してください。

2. 長い DKIM の値:DKIM の公開鍵は 255 文字を超えます。多くのプロバイダーは自動で分割しますが、そうでない場合は 1 つの TXT レコード内で、255 文字以下の引用符付き文字列に分割してください。

3. 検証 API が HTTP 200 を返しても、チェックが実行されただけです。all_passed が true か確認し、失敗時は checks[] の expected_value と found_values を比較してください。

4. 検証結果の確認

POST /domains/{id}/verifyには本文不要です。HTTP 200でもall_passedがfalseの場合があります。passed、expected_value、found_values、lookup_errorを確認し、全項目通過を確認します。DNS検証はノード設定完了や継続監視の保証ではありません。

フィールド / 設定型 / 状態説明
all_passed / statusbool / string全体の合格と現在状態
checks[].namestringdkim / spf
record_name / expected_value / passedstring / bool各レコードの期待値と結果
found_values / lookup_errorstring[] / string任意、DNS問題の調査用
curl -X GET "${SMTPDOG_API_ORIGIN}/domains/${SMTPDOG_DOMAIN_ID}" \
  -H "Authorization: Bearer ${SMTPDOG_SESSION_TOKEN}"

curl -X POST "${SMTPDOG_API_ORIGIN}/domains/${SMTPDOG_DOMAIN_ID}/verify" \
  -H "Authorization: Bearer ${SMTPDOG_SESSION_TOKEN}"

5. 問題解決と解除

TXT不一致は完全なname/value、反映、事業者のHost形式を確認します。DMARC検証APIはありません。DELETE /domains/{id}は履歴を残してdisabledにします。即時の再登録・他アカウント移動は保証されません。部分的な追加失敗は無限再試行せずサポートへ相談してください。