E-Postは、中継時に添付ファイル名を書き換えない
添付ファイル名は、メールのヘッダ部分(添付ファイルごとのヘッダ)に記載されます。E-Post SMTP Server・E-Post Mail Serverは、通常のメール中継(SMTP受信と配送)において、この部分の文字コードやMIMEエンコードを意図的に書き換えることはありません。
そのため、添付ファイル名の文字化けは、送信元のメールクライアントの仕様や抱えている問題点と、受信側のメールクライアントとの組み合わせによって起きる事象です。解決には、メール送受信の両端での対応が必要になります。
なお、E-Post Mail ServerのIMAP4サービス(epstimap4d)経由でメールを閲覧している場合、古いモジュールでは添付ファイル名の表示が変わる現象が確認されています。これについては下記記事「Roundcube mail を E-Post と組み合わせて設定、添付ファイルを送信したときの問題」を参照してください。
添付ファイル名の長さに直接の上限はないが、RFCによる実質的な制約がある
添付ファイル名の長さについて、RFCの規定やE-Postシリーズ側による直接的な上限は定められていません。ただし、RFCによる実質的な制約のために、次のような影響を受けることがあります。 1.メールの1行の長さの制約
メールのヘッダや本文の1行は998文字(1バイト/1文字の場合)までと定められており(必須)、さらに1行あたり78文字以内で改行することが推奨されています(RFC 5322「2.1.1. Line Length Limits」)。添付ファイル名もヘッダに含まれるため、長いファイル名ほど、文字化けや欠落の危険性が高まります。 2.日本語(全角文字)を使うときは、制約がさらに厳しくなる
日本語のファイル名は、そのままではヘッダに記載できないため、エンコード(文字コードの指定を付け加えたうえでの変換)が行われます。その分だけ文字列が長くなるため、上記の制約はさらに厳しくなります。ヘッダに日本語などを記載するためのエンコード方式はRFC 2047で定められており、エンコードした1つの単位(encoded-word)は75文字以内とされています(RFC 2047「2. Syntax of encoded-words」)。 3.長い日本語ファイル名は、分割してエンコードされる
長い日本語ファイル名になると、エンコードした文字列が送信元のメールクライアントによって複数に分割されます(分割の方式には、RFC 2231で定められた方式(「3. Parameter Value Continuations」「4. Parameter Value Character Set and Language Information」)のほか、本来はファイル名などのパラメータへの使用が認められていないRFC 2047の形式を流用する方式も広く使われています(RFC 2047「5. Use of encoded-words in message headers」))。その方式が特殊だったり、受信側にとって想定外だったりすると、受信側のメールクライアントでは、判読可能な日本語のファイル名に戻せない(文字化けする)可能性が高くなります。