• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日本語を含むメールヘッダ)

日本語を含むメールヘッダの制限とエンコードについて

このQ&Aのポイント
  • メール送信時に、日本語などマルチバイト文字をSubjectなどに含める場合はMIME、BASE64エンコードしますが、制限に疑問があります。
  • RFCによれば1行あたり76文字とされていますが、実際のソースコードでは考慮されていないことが多いです。
  • また、ASCII文字のみの場合の行あたりの文字数制限についてはRFCで明確に指定されていません。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

MIMEを使わない場合の制限はRFC2822/2821にあります。 根拠はないですが。。。。 RFC2821/2822はそこそこ尊重しても、 RFC 2047の制限は余り気にしていない実装者がおおいということでしょう。 多くのMTA/MUAは 継続行を連結した結果の文字数さえ制限(1000文字くらいだったはず)を超えてなければ、物理行の長さは結構長くても正常に処理できるので。

taseki
質問者

お礼

ご回答ありがとうございます。 ASCII文字のみの場合でも78文字以下なんですね。 ただ「SHOULD」であることを考えると、おっしゃるようにMIMEの76文字もあまり気にしていないコードが多いということなんですかね…。 とは言え、かなり滑稽なのは、わざわざコード中で76文字に区切ってから「Subject: 」を付ける、なんていうものも意外に多かったです。 ご指摘のように多くのMUAは(OEなど言わずもがな)、作成されるメール自体が、すでに違反しているようです…。 少なくともSMTPに違反しないよう998文字だけは守ったほうが良いかとも思ったのですが、qmail-smtpdで試したところ、これを超えても受信するようでした。結局は実装次第なのかもしれません。 基本的には、サンプルなどのほうが間違いで、RFCにしたがって76文字/78文字であると考えたほうが良さそうですね。

その他の回答 (1)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

76文字というのはどのRFCを読んだのでしょうか? 番号を教えてください。

taseki
質問者

補足

RFC 2047あたりが一番くわしいです。 MIME::Base64他、標準的なモジュールなどは、これに準拠して自動的に76文字で区切ってくれます。

関連するQ&A