it-swarm.dev

メールの件名の長さ制限とは何ですか?

インターネットメールの件名には何文字まで入力できますか? 電子メールのRFC のスキャンがありましたが、許可されている期間を具体的に確認できませんでした。私はそれをプログラムで検証したい同僚がいます。

正式な制限がない場合、実際に提案すべき長さはどれくらいですか?乾杯、

211
Scott Ferguson

RFC 2822 、セクション2.1.1を参照してください。

この標準では、1行の文字数に2つの制限があります。文字の各行は998文字を超えてはならず(MUST)、CRLFを除いて78文字を超えてはなりません(SHOULD)。

RFCが後で述べているように、件名を複数行に折り畳むことにより、この制限を回避することができます(そうすべきではありません)。

各ヘッダーフィールドは、論理的には、フィールド名、コロン、およびフィールド本体で構成される1行の文字です。ただし、便宜上、1行あたり998/78文字の制限に対処するために、ヘッダーフィールドのフィールド本体部分を複数行の表現に分割できます。これは「折りたたみ」と呼ばれます。一般的な規則は、この標準が空白(単なるWSP文字ではなく)を折り畳むことを許すところはどこでも、CRLFがWSPの前に挿入されるかもしれないということです。たとえば、ヘッダーフィールド:

       Subject: This is a test

次のように表すことができます。

       Subject: This
        is a test

件名ヘッダー内の78文字以下の推奨事項は妥当と思われます。誰もが件名全体を見るためにスクロールすることを望みません、そして、重要な何かが右側で途切れることがあります。

181

RFC2322には、件名ヘッダーには「長さ制限がない」と記載されています

しかし、長いヘッダーを作成するために、複数の行に分割する必要がある、「折り畳み」と呼ばれるプロセス。

件名は、RFC 5322で「非構造化」として定義されています

ここに引用符があります([...]は、私が省略したものを示します)

3.6.5. Informational Fields
  The informational fields are all optional.  The "Subject:" and
  "Comments:" fields are unstructured fields as defined in section
  2.2.1, [...]

2.2.1. Unstructured Header Field Bodies
  Some field bodies in this specification are defined simply as
  "unstructured" (which is specified in section 3.2.5 as any printable
  US-ASCII characters plus white space characters) with no further
  restrictions.  These are referred to as unstructured field bodies.
  Semantically, unstructured field bodies are simply to be treated as a
  single line of characters with no further processing (except for
  "folding" and "unfolding" as described in section 2.2.3).

2.2.3  [...]  An unfolded header field has no length restriction and
  therefore may be indeterminately long.
14
Jasen

いくつかのテストの後:Outlookクライアントに電子メールを送信し、件名が77文字以上で、件名の中で"=?ISO"を使用する必要がある場合(私の場合はアクセントのため)、Outlookは中央の件名を「カット」しますそれから、本文、アタッチなどを含むすべてのメッシュをメッシュします。

このような例がいくつかあります。

Subject: =?ISO-8859-1?Q?Actas de la obra N=BA.20100154 (Expediente N=BA.20100182) "NUEVA RED FERROVIARIA.=

TRAMO=20BEASAIN=20OESTE(Pedido=20PC10/00123-125),=20BEASAIN".?=

に:

ご覧のように、件名行では、char = 78で「=」の後に2つまたは3つの改行が続き、残りの件名がひどく続きました。

Outlookを使用している他の電子メールクライアントがこれらの件名を処理する複数の顧客から私に報告されました。

ISOがなくても問題はありませんが、RFCに準拠するように件名に追加すると、Outlookからこの驚きを得ることができます。 ISOを追加しないと、iPhoneの電子メールはそれを理解しません(そのような文字を使用した名前のファイルをiPhoneで添付することはできません)。

4
Sergio

ここに正式な制限があるとは思わない。そして、あなたが見つけたように、RFCでもハード制限が指定されていないことを確信している。

件名の一般的な制限(電子メールだけでなく)には次のような制限があると思います。

  • 80文字
  • 128文字
  • 256文字

明らかに、あなたは合理的なものを考え出したいです。電子メールクライアントを作成している場合は、256文字などを使用し、明らかに大規模な商用サーバーに対して徹底的にテストして、メールが正しく配信されることを確認します。

お役に立てれば!

2
Ed Altorfer

重要なのは、どのメカニズムを使用してメールを送信するかです。最新のライブラリ(System.Net.Mailなど)のほとんどは、折り畳みを非表示にします。 (CR、LF、HTAB)なしで非常に長い電子メールの件名を入力するだけです。独自のフォールディングを行おうとすると、すべてのベットがオフになります。エラーの報告を開始します。したがって、この問題が発生している場合は、CR、LF、HTABを除外し、ライブラリに作業を任せてください。通常、エンコードテキストタイプを別のフィールドとして設定することもできます。件名にisoエンコードの必要はありません。

0
kariato