Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

メールヘッダー

設定できるメールヘッダー、自動生成されるヘッダー、検証の仕組み

最終更新 Markdown で表示Agent セットアップ

Cloudflare Email Service でメールを送るとき、Workers API または REST APIheaders フィールドでカスタムヘッダーを設定できます。Email Service は 許可リスト方式 です。明示的に許可されたヘッダーだけを受け付けます。許可リストになく、X- プレフィックスのカスタムヘッダーでもないヘッダーは、API 呼び出し時に明確なエラーで拒否されます。

SMTP で送る場合は、headers フィールドではなく MIME メッセージに直接ヘッダーを設定します。同じ許可リストが適用されます。

プラットフォーム管理ヘッダー

これらのヘッダーは Cloudflare Email Service のインフラが自動生成します。設定や上書きはできません。headers オブジェクトに含めると、API は E_HEADER_NOT_ALLOWED を返します。

Header Behavior
Date 受付時に設定する UTC タイムスタンプ
Message-ID 一意の追跡用に Cloudflare ドメインで生成
MIME-Version 常に 1.0
Content-Type 指定した本文パートから生成
Content-Transfer-Encoding コンテンツ分析から生成
DKIM-Signature Cloudflare インフラが署名
Return-Path Cloudflare のバウンス処理先に設定
Received 各ホップで RFC 5321 に従って追加
Feedback-ID Google Postmaster Tools のレピュテーションフィードバック用に生成
ARC-* 転送時の認証チェーン
TLS-Required プラットフォーム管理の配信インフラ設定
TLS-Report-Domain TLS 失敗レポートを Cloudflare インフラへ送る
TLS-Report-Submitter Cloudflare の送信ドメインを参照
CFBL-Address 苦情フィードバックループのアドレス(RFC 9477)
CFBL-Feedback-ID 苦情フィードバックループの ID(RFC 9477)

ファーストクラスの API フィールドに対応するヘッダー(FromToCcBccSubjectReply-To)も、headers オブジェクトでは E_HEADER_USE_API_FIELD で拒否されます。代わりに専用の API フィールド(Workers では fromtoccbccsubjectreplyTo / REST では reply_to)で設定します。

許可リストのカスタムヘッダー

これらのヘッダーは headers フィールドで設定できます。ここになく、X- で始まらないヘッダーは E_HEADER_NOT_ALLOWED で拒否されます。

許可されていないヘッダーが含まれると、Email Service は送信リクエスト全体を拒否します。ヘッダーを取り除いて送信を続けることはありません。

スレッドと返信のヘッダー

Header RFC Notes
In-Reply-To RFC 5322 すべてのクライアントでメールスレッドに必須
References RFC 5322 すべてのクライアントでメールスレッドに必須
Thread-Index Microsoft(非標準) Outlook と Exchange Online が使う会話インデックス
Thread-Topic Microsoft(非標準) Outlook と Exchange Online が使う会話の件名

リスト管理ヘッダー

Header RFC Notes
List-Unsubscribe RFC 2369 <https://...> または <mailto:...> の URI を含めてください。HTTP(非 TLS)の URI は拒否されます。Gmail と Yahoo はバルク送信者にこのヘッダーを求めます。RFC 8058 に従い、常に DKIM 署名されます。
List-Unsubscribe-Post RFC 8058 値は正確に List-Unsubscribe=One-Click です(大文字小文字を区別)。HTTPS URI 付きの List-Unsubscribe が必要です。
List-Id RFC 2919 リストの識別
List-Archive RFC 2369 リストアーカイブの URL
List-Help RFC 2369 ヘルプの URL
List-Owner RFC 2369 リスト所有者の連絡先
List-Post RFC 2369 投稿用アドレス
List-Subscribe RFC 2369 購読用 URL またはアドレス
Precedence 事実上の標準 受け付ける値: bulklistjunk

自動メッセージの識別

Header RFC Notes
Auto-Submitted RFC 3834 値: auto-generatedauto-repliedauto-notified

コンテンツと表示

Header RFC Notes
Content-Language RFC 3282 コンテンツの言語(例: enfr
Keywords RFC 5322 メッセージのキーワード(複数値はカンマ区切り)
Comments RFC 5322 追加コメント(複数値はカンマ区切り)
Importance RFC 2156 値: highnormallow
Priority RFC 2156 値: normalnon-urgenturgent
Sensitivity RFC 2156 値: personalprivatecompany-confidential
Organization RFC 4021 送信者の組織名

配信と通知

Header RFC Notes
Require-Recipient-Valid-Since RFC 7293 アドレス再利用の保護
Expires RFC 2156 メッセージが無効になる日時
Reply-By RFC 2156 返信を求める期限の日時

最新の標準

Header RFC Notes
Archived-At RFC 5064 メッセージのアーカイブ URL

カスタム X-headers

X- で始まるヘッダーはすべて許可されます。X-MailerX-PriorityX-Campaign-ID などの一般的なヘッダーや、アプリケーションが必要とするカスタムの追跡ヘッダーも対象です。

  • 名前の形式: X-[A-Za-z0-9\-_]+、最大 100 文字
  • 値: UTF-8、最大 2,048 バイト
  • 件数制限なし(合計ペイロード 16 KB の上限の対象)

使用例

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/send" \
  --header "Authorization: Bearer <API_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
    "to": "[email protected]",
    "from": "[email protected]",
    "subject": "Your weekly digest",
    "html": "<h1>Weekly Digest</h1>",
    "headers": {
      "In-Reply-To": "<[email protected]>",
      "References": "<[email protected]>",
      "List-Unsubscribe": "<https://yourdomain.com/unsubscribe?id=abc123>",
      "List-Unsubscribe-Post": "List-Unsubscribe=One-Click",
      "X-Campaign-ID": "weekly-digest-2026-03",
      "X-User-Segment": "premium"
    }
  }'
const response = await env.EMAIL.send({
	to: "[email protected]",
	from: "[email protected]",
	subject: "Your weekly digest",
	html: "<h1>Weekly Digest</h1>",
	headers: {
		// Threading
		"In-Reply-To": "<[email protected]>",
		References: "<[email protected]>",

		// List management (required by Gmail/Yahoo for bulk senders)
		"List-Unsubscribe": "<https://yourdomain.com/unsubscribe?id=abc123>",
		"List-Unsubscribe-Post": "List-Unsubscribe=One-Click",

		// Custom tracking
		"X-Campaign-ID": "weekly-digest-2026-03",
		"X-User-Segment": "premium",
	},
});

ヘッダーの制限

Limit Value
許可リスト(非 X)のカスタムヘッダーの上限 20
ヘッダー名の最大長 100 bytes
ヘッダー値の最大長 2,048 bytes
カスタムヘッダーの合計ペイロード 16 KB

合計ペイロードは、すべてのカスタムヘッダーについて sum(len(name) + 2 + len(value) + 2)(名前 + : + 値 + CRLF)で計算します。許可リストのヘッダーと X-headers は、この上限にまとめて計上されます。

検証ルール

  1. ヘッダー名 — ASCII のみ、スペースなし、コロンなし、1〜100 文字。許可リストのヘッダーは [A-Za-z0-9\-]+ に一致する必要があります。X-headers は X-[A-Za-z0-9\-_]+ に一致する必要があります(アンダースコアは X-headers でのみ許可)。
  2. ヘッダー値 — UTF-8 可、最大 2,048 バイト、裸の CR/LF は不可。空の値は拒否されます。
  3. 大文字小文字を区別しない照合 — ヘッダー名は RFC 5322 §2.2 に従い、大文字小文字を区別せず照合します。生成されるメッセージでは、許可リストの正規の大文字小文字を使います。
  4. 適切な行折り — 長いヘッダーは RFC 5322 に従い、78 文字で CRLF+WSP を使って折り返します。MIME エンコードは使いません。
  5. 単一出現headers の型は { [key]: string } のため、各ヘッダー名は最大 1 回です。複数値をサポートするヘッダー(KeywordsComments など)は、1 つの文字列にカンマ区切りで指定します。

エラーコード

Error Code When Example message
E_HEADER_NOT_ALLOWED ヘッダーがプラットフォーム管理、または許可リストにない Header 'Date' is not allowed. It is auto-generated by the platform.
E_HEADER_USE_API_FIELD ヘッダーがファーストクラスの API フィールドに対応する Header 'From' must be set via the 'from' API field, not the 'headers' object.
E_HEADER_VALUE_INVALID ヘッダー値が不正、または空 Header 'List-Unsubscribe' must contain angle-bracket HTTPS or mailto URI(s).
E_HEADER_VALUE_TOO_LONG ヘッダー値が 2,048 バイトの上限を超える Header 'X-Campaign-ID' value exceeds 2048 byte limit.
E_HEADER_NAME_INVALID ヘッダー名に不正な文字が含まれる、または 100 バイトを超える Header name 'Bad Header!' contains invalid characters.
E_HEADERS_TOO_LARGE カスタムヘッダーの合計ペイロードが 16 KB を超える Total custom headers payload (17.2KB) exceeds 16KB limit.
E_HEADERS_TOO_MANY 許可リスト(非 X)のカスタムヘッダーが多すぎる 21 allowlisted headers provided, maximum is 20.

役に立ちましたか?