Outlookで勝手に「自動改行」させないための設定、正解は、[ファイル] - [オプション] - [詳細設定] の「文字設定オプション」で「送信メッセージで優先使用するエンコード方法(E):」を『Unicode (UTF-8)』にする。
こうすることで、テキスト形式のメールは
Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64
として送信されるので、受信側でメールを表示すると
閲覧環境にあわせて適切に「折り返し」
送信者の意図した位置で「改行」
される。
送ったメールの「ソース」を受信側で表示するとこんな感じ。
Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Content-Language: ja 44CA44KE44GB44CBDQrjgIDjgZPjgozjgpLoqq3jgpPjgafjgYTjgovjgajjgYTjgYbjgZPjgajj ga/jgIFiYXNlNjTjgqjjg7PjgrPjg7zjg4njgZXjgozjgZ/mloflrZfliJfjgpLjg4fjgrPjg7zj g4njgZfjgZ/jga7jga3jgIHjgZnjgbDjgonjgZfjgYTvvIENCg==base64エンコードすると、76文字で「改行」していることがわかるよね。
っていうかさ、違うんだよ。いつも、もやーっとするのね。
『Unicode (UTF-8)』って、Unicode という「符号化文字集合(character set)」を UTF-8 という「文字符号化方式」で「エンコード」してるんであって、「メールのエンコード方法」じゃないんだよね。
本来なら
- 符号化文字集合は何を使いますか?
- 文字符号化方式は何を使いますか?
- メールのエンコードはどうしますか?
と3つ聞かないといけないんだけど、メールのヘッダには「符号化文字集合」を表すヘッダがないから(というか、世の中そうなんだけど)、1.と2.が「セット(UTF-8と言えばUnicode)」になってて、3.はそれに従う(8ビット符号単位のセットならbase64、7ビット符号単位のセットなら7bit)」っていうことを、いろんなシステムが「裏」でしちゃうから、自称「SE」さんたちもこの辺のいわゆる「文字コード」について誤解っていうか、理解せずにいるんだよね。おれより高給取りのくせに。
しかも、文字セットは受信側に依存するし、表示フォントでも変わるし、なんなら、送信側のフォントによっても、メールを書いているときの「入力できる/できない=表示できる/できない」に影響するから、「送信メッセージで優先使用するエンコード方法(E):」っていう設定項目の見出しそのものがおかしくて、
送信メッセージの文字符号化方式:
○ ISO-2022-JP
○ Shift_JIS
⦿ UTF-8
メール転送符号化方式 (Content-Transfer-Encoding):
○ 7bit
○ 8bit
○ binary
○ quoted-printable
⦿ base64
が本来の姿だと思うんだ。
そのうえで、両方の組み合わせがおかしくならないように選択肢を制御すればいいと思うんだけどね。
もういい加減、UTF-8 + base64 をデフォルトにすれば、このWindows 95の時代から続く「日本人を悩ます事象」が解決するんだけどな~