Menu

BLOG ベアメールブログ

RFCで規定されているメール本文一行あたりの文字数とは?

送れば当たり前に届くと考えられているメールですが、「送信したはずのメールが相手に届いていなかった」という経験がある方も多いのではないでしょうか。実はメールにはさまざまなルールがあり、準拠していないと迷惑メールと判定されて受信拒否となる可能性があります。本記事では、メールに関するルールのうち、メール本文の文字数制限について解説します。

おすすめのお役立ち資料の紹介です。Googleの新送信者要件対応ガイドのダウンロードはこちらから。

RFCとは

RFC(Request for Comments)とは、インターネット技術の標準化などを行うIETF(Internet Engineering Task Force)が発行する正式なドキュメントで、インターネット技術に関する各種トピックの仕様が文書化されたものです。

一度発行されたRFCは変更されることはなく、更新がある場合は後続のRFCが発行されます。またRFCは技術の成熟度とカバーする内容に応じてさまざまなステータスがつけられ、「インターネット標準」「提案された標準」「現在のベストプラクティス」「実験的」「情報提供」「歴史的」と分けられています。

メールに関するRFC

メールに関するRFCは、1982年にRFC822が公開されてから現在に至るまで、時代の変化に応じてさまざまな仕様が公開されています。現在メールに関して最も基本的なRFCは、メッセージの転送方式を定めた標準仕様であるRFC5321と、メッセージの基本フォーマットを定めた標準仕様であるRFC5322です。

RFC 5321:Simple Mail Transfer Protocol(旧:RFC 821およびRFC 2821)

コンピューター間でメールを送信するために使用されるプロトコルであるSMTPに関する仕様です。SMTPコマンドやSMTPステータスコードなどが定められています。
https://www.rfc-editor.org/rfc/rfc5321

RFC 5322:Internet Message Format(旧:RFC 822およびRFC 2822)

送信されるテキストメッセージの構文(フォーマット)に関する仕様です。メールアドレスの形式やメールヘッダなどについて定められています。このRFCではメッセージがUS-ASCII文字のみで構成されることを指定しており、別途MIMEと呼ばれる仕様でメッセージ形式の拡張がカバーされています。
https://www.rfc-editor.org/rfc/rfc5322

RFCが定めるメールの文字数制限

メッセージのフォーマットを定めたRFC 5322において、メールの本文・ヘッダ一行あたりの文字数について以下のように記載されています。

2.1.1. 行の長さの制限
この仕様が 1 行の文字数に課す制限は二つある。CRLF を除いて、各行は 998 文字を超えてはならず(MUST)、78 文字を超えるべきではない(SHOULD)。

引用:RFC5322(Internet Message Format)日本語訳 http://srgia.com/docs/rfc5322j.html#p2.1

CRLFとは、CR(Carriage Return)とLF(Line Feed)という改行を指示する文字コードの組み合わせです。つまり改行を除いた一行あたりの文字数は998文字以内とすることが必須であり、より保守的には78文字以内とすることが推奨されています。

この「文字数」というのはASCII文字での換算であり、日本語の文字数ではありません。通常、日本語のメールは送信環境でASCII文字にエンコードされ、その際に1行78文字以内となるように自動的に改行処理が行われます。ASCII文字の1文字=1バイトとなるため、制限をバイト数で表現する場合もあります。

一般的なメールサービスやメーラー、メール配信システムでは自動的に改行処理がされる仕様になっているものの、独自に開発したシステム(アプリケーション)にメールを作成し送信する仕組みを実装した場合は、この改行処理を組み込む必要があります。

文字数制限を超えた場合

もし送信環境で正常に改行処理が行われず、1行あたりの文字数/バイト数の制限を超過した状態でメールが送信されている場合は、RFC違反として受信拒否や迷惑メール判定される原因となる可能性があります。

GmailやiCloudメールは、送信者向けのガイドラインで「RFC5322に準拠すること」をそれぞれ推奨しています。docomoやauなどの携帯キャリアでもRFCに準拠することが求められており、違反した場合は受信拒否される可能性が高いです。特にdocomoでは、1行の長さが1000バイト(1000文字)を超えた場合は「500 Line Too Long」というエラーになり受信されません。

このように、通常意識することは少ないと思いますが、メールのフォーマットがRFCに違反している場合、迷惑メールとして扱われてしまい届かない可能性があるのです。

参考:Gmailヘルプ「Gmail ユーザーへのメールがブロックまたは迷惑メール扱いされないようにする」https://support.google.com/mail/answer/81126?hl=ja

参考:Apple Support「Postmaster information for iCloud Mail」https://support.apple.com/en-us/HT204137

メールの正常性を簡単にチェック

1行あたりの文字数制限、といっても日本語の文字数ではなく「エンコード後の1行あたりの文字数/バイト数」が正常かどうかチェックする必要があるため、なかなか自身のメールに問題がないか確認するのは難しいと思われるかもしれません。

そこでおすすめなのが、ベアメールが提供する「迷惑メールスコアリング」というサービスです。迷惑メールスコアリングにテストメールを送信するだけで、メールに問題点がないか診断を受けることができます。

screenshot of mailscoring

1行あたりの文字数もチェック項目に含まれているので、RFC違反となっていないか手軽に確認することが可能です。「改善アドバイス機能」では、どの行で何文字オーバーしているかまで提示されるため、修正対応に役立てることができます。

screenshot 改善アドバイス

文字数制限だけでなく、フォーマットやDNSなどの各種設定、送信ドメイン認証の状況、使用しているドメインやIPアドレスがブラックリストに掲載されていないか、メール本文の内容に問題はないかなど、多角的な診断を行います。


「メールが届かない」というトラブルが発生した場合、要因はさまざまなことが考えられるため、メールに関するナレッジがなければ原因を特定して解決するのは困難です。迷惑メールスコアリングを活用することで、送信しているメールに問題がないか、各種携帯キャリアやメールサービスにきちんとメールが届いているか効率的にチェックすることができるので、手間をかけずにメール配信の安定運用を実現できます。

ご興味のある方はお気軽にお問い合わせください。

まとめ

メール本文一行あたりの文字数はRFCで規定されています。通常、日本語のメールは送信環境でASCII文字にエンコードされ、その際に自動的に改行処理が行われますが、もし改行処理が行われないとRFC違反となり、メールが届かなくなる可能性があります。その他にも、迷惑メール判定されないために注意すべきポイントは複数あります。こうしたポイントを効率的にチェックし、メール到達率を向上させたい方は、迷惑メールスコアリングの利用をおすすめします。