2016-08-27 4 views
1
Content-Transfer-Encoding: 7bit 
Content-Type: plain/text 

rfc5322によると、78文字の後に改行(CRLFを追加)する必要があります。7bitプレーン/テキスト電子メール本文の解読方法(CRLFの削除方法)

私の質問は、どのように私はテキスト/ボディを(CRLFを削除して)デコードすることができますか?どのCRLFがエンコーダによって追加され、どのボディが元のボディコンテンツの一部であったのかをどのように知ることができますか?私はいくつかの実装をチェックしましたが、ほとんどがルールのエンコーディングが強制されても気にしないようです。

答えて

0

実際には、RFC5322の状態:

Each line of characters MUST be no more than 998 characters, and SHOULD 
be no more than 78 characters, excluding the CRLF. 

言った、それは78個の文字に行を制限することをお勧めです。

  1. 使用text/plain; format=flowed:(など、あなたの例の一つとして)テキストベースのMIME部分については

    、あなたはこれを達成するためのいくつかのオプションがあります。この形式の詳細については、rfc2646を参照してください。基本的に、それは受信クライアントによって可逆的である長い行をラップする方法を提供します(ちょっと!それはあなたが何を望むかまさにだ!)

  2. 使用異なるContent-Transfer-Encoding、などquoted-printablebase64を。
  3. 行が78文字を超え、998文字を超えないようにしましょう...しかし、998文字を超える非常に長い行がある場合は、基本的に同じ問題が発生します。他のオプションの1つに従います。
0

RFCを使用すると、78個の文字の後に行を分割する必要は言っていません:

文字の各行は 、これ以上998文字以下でなければならないとCRLF以外はノー以上78文字以下でなければなりません。

“デコード”に送信するシステムによって追加CRLFを行うことがあるとして、受信者はちょうどそれを残す方法はありません。

メッセージを変更したくない場合は、998文字未満の行に改行を追加しないでください。

+0

これで、78文字を推奨し、998以上を禁止します。問題はまだありません。基本的に唯一の解決策は、元のフォームに復元する方法がない修正済みのボディ(余分なCRLF)を提供することです。 –

+0

そう、それは私がそれを読む方法です。 –

関連する問題