受け取ったメールの添付ファイル名の文字化けについて

MacOS標準メールアプリを使用していると、良く、受け取ったメールの添付ファイルが文字化けして、

「??????〜.zip」や「?????new.xlsx」などと表示されることがあります。

ファイル内容に関して問題が無いため今まで看過しておりましたが、OSのアップデートでも治らず質問した次第です。


送信元はWindowsのOutlookやブラウザ上でのGmailなど、利用環境は様々でした。

こちら側はGmailアカウントをメールアプリに設定して利用していますが、ブラウザ上でログインすると正常にファイル名が表示されるため、あくまで標準メールアプリの不具合では無いかと考えています。


OS:MacOS Monterery 12.6

メール.app:バージョン16.0 (3696.120.41.1.1)

メールソースの添付ファイルの部分抜粋:

Content-Type: application/zip;

 name="=?UTF-8?B?44OX(省略)==?="

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

 filename="=?UTF-8?B?44OX(省略)==?="

また、メール本体、件名、送り元も全てUTF-8/Base64で統一されており、エンコードミスは見当たりませんでした。


同様の事例を検索したところ

https://okumuralab.org/~okumura/misc/200915.html

がヒットし、この、

"「このMac内」のメールボックスに移動するとファイル名の文字化けが直ると教えていただいた。やってみると直ったが,なぜかわからず,頭を抱えている。"

という部分は自分の環境でも同様で、このMac内のメールボックスへ移動することで文字化けは治りました。


メールに添付されたファイルが化け文字 - Apple コミュニティ

などおそらく他のユーザーにも起こっていることですが、この問題は修正されないのでしょうか。

メール自体のエンコードに問題がなく、他の環境では正しく表示され、また、Mac内のメールボックスに移動すれば正しく表示される状況はバグとしか思えません。

もちろん、添付ファイルを英語に限定したり、メールボックスを移動したり、そもそもソースをみて自分で変換すれば元のファイル名は分かりますが、そこまで手をかけるなら何のための標準アプリなのか分かりません。

それとも私の環境だけなのでしょうか?

同様の症状で、解決策を見つけられた方がいらっしゃればご教示いただきたいです。



MacBook Air 13″, macOS 12.6

投稿日 2022/11/22 00:32

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2022/11/25 20:32

こんにちは。


まぁ、、フィードバックするのは構いませんが...


>メールアプリのバグっぽいですね。

ココだけ。 私なりの解釈を。


>filename="=?UTF-8?B?4piFUjTli6Tli5nooajvvIjljLvluKvku6XlpJbvvIkxMeaciC54bHN4?="

コレが問題の部分ですね。


>Content-Disposition: attachment;

の下にfilename=があるのは正しいのですが、この中身をMIMEでエンコードするのは果たして

正しいのか??

たぶん、Appleのメールは本文のMIME指定と同じ文字コードとみなしてfilename=の中身も

デコードしてるんじゃないかな。(それもわかる気もするけど、正しいわけではないなぁ・・)


RFCの(現在の)規定ではfilename= に格納していいのはASCIIのみのはずです。

で、ココに多言語に対応する規定はなかったので、(たぶん)GmailではMIMEエンコード

してしまえ、とやっちまったのだと思います。 その気持ちと思いつきはわからんでもないですが、、、

これはかなり、、乱暴なやり方をやっちまったもんだなぁとも思います。


MBoxから出したり入れたりする際にMIMEのフィルタを通すので、この部分も(意図せず)うまく

デコードされるわけです。(MIMEのフィルタを通すだけでいいという思いつきだけは感心します。)


現在のRFCの規定では、多言語対応の場合、

Content-Disposition: attachment;

filename=hello.txt ←ここにはASCII(ISO-8859-1 )のみを格納

filename*='UTF-8''こんにちは.txt' ←エンコード(RFC5987)指定(追加拡張)



とするのが正しいんじゃないかと思います。


今は過渡期で、Gmailが添付File名の文字化け対策にMIMEを無理やり使った、けど

このやり方はUS-ASCII圏の人が困ってしまう、後方互換性に問題がある。

で、正規の規格ではfilename*=で追加拡張して

文字コード指定可能な仕様を策定した、、ってことじゃないんですかね。(RFC6266)


filename=の中身をMIMEデコードするようにAppleが修正する必要なんかないと思うし、

時間をかけて、、、、filename*= にも対応したメールソフトが浸透するのを待つしかないか、

と私は思ってます。


それまでは、Filenameに日本語を使えるのはもう少し先の話なので、今は「使わない」が正しいと

私は思いますけどね。。。。


以上、私見ですが、

こんな考えもあるということで。


返信: 6
スレッドに付いたマーク ランキングトップの返信

2022/11/25 20:32 やすどん への返信

こんにちは。


まぁ、、フィードバックするのは構いませんが...


>メールアプリのバグっぽいですね。

ココだけ。 私なりの解釈を。


>filename="=?UTF-8?B?4piFUjTli6Tli5nooajvvIjljLvluKvku6XlpJbvvIkxMeaciC54bHN4?="

コレが問題の部分ですね。


>Content-Disposition: attachment;

の下にfilename=があるのは正しいのですが、この中身をMIMEでエンコードするのは果たして

正しいのか??

たぶん、Appleのメールは本文のMIME指定と同じ文字コードとみなしてfilename=の中身も

デコードしてるんじゃないかな。(それもわかる気もするけど、正しいわけではないなぁ・・)


RFCの(現在の)規定ではfilename= に格納していいのはASCIIのみのはずです。

で、ココに多言語に対応する規定はなかったので、(たぶん)GmailではMIMEエンコード

してしまえ、とやっちまったのだと思います。 その気持ちと思いつきはわからんでもないですが、、、

これはかなり、、乱暴なやり方をやっちまったもんだなぁとも思います。


MBoxから出したり入れたりする際にMIMEのフィルタを通すので、この部分も(意図せず)うまく

デコードされるわけです。(MIMEのフィルタを通すだけでいいという思いつきだけは感心します。)


現在のRFCの規定では、多言語対応の場合、

Content-Disposition: attachment;

filename=hello.txt ←ここにはASCII(ISO-8859-1 )のみを格納

filename*='UTF-8''こんにちは.txt' ←エンコード(RFC5987)指定(追加拡張)



とするのが正しいんじゃないかと思います。


今は過渡期で、Gmailが添付File名の文字化け対策にMIMEを無理やり使った、けど

このやり方はUS-ASCII圏の人が困ってしまう、後方互換性に問題がある。

で、正規の規格ではfilename*=で追加拡張して

文字コード指定可能な仕様を策定した、、ってことじゃないんですかね。(RFC6266)


filename=の中身をMIMEデコードするようにAppleが修正する必要なんかないと思うし、

時間をかけて、、、、filename*= にも対応したメールソフトが浸透するのを待つしかないか、

と私は思ってます。


それまでは、Filenameに日本語を使えるのはもう少し先の話なので、今は「使わない」が正しいと

私は思いますけどね。。。。


以上、私見ですが、

こんな考えもあるということで。


2022/11/25 06:00 ペリーIII への返信

久しぶりに文字化けした添付ファイル付きのメールが私のGmailアドレス宛に届きましたので動作確認しました。

(ちなみにこの方からのメールに添付されたファイルの日本語は必ず文字化けします。送信者の環境は未確認。)


私の環境はmacOS12.4です。

  1. このMac内に「Test」というフォルダを作成。
  2. Macのメールアプリで、文字化けした添付ファイルを含むメールをGmailの受信フォルダから、Testフォルダにドラッグアンドドロップで移動する。
  3. 添付ファイル名の文字化けが正常な日本語になっていることを確認。
  4. Macのメールアプリで、文字化けした添付ファイルを含むメールをTestフォルダから、Gmailの受信フォルダにドラッグアンドドロップで移動する。
  5. 添付されたファイル名の文字化けはしておらず、正常な日本語になっていることを確認。



てっきりEメールの仕様による文字化けだばかり思っていましたが、これはメールアプリのバグっぽいですね。

フィードバックしていきましょう。

製品フィードバック - Apple(日本)


2022/11/22 20:03 ペリーIII への返信

これって不具合かどうか難しいのですよ。

もともとインターネットの世界はアルファベットの文字しか使えませんでした。

その環境で日本語のような2バイト文字を使うために開発された環境がシフトJISとかEUC-JPとかbase64とか……。

その後世界中の言語に一括対応できるために開発されたのがUnicode。


で、世界中がUnicode対応で動いていれば問題ないのですが、一部古い環境ではまだシフトJISとかが動いています。

これらのレガシーな環境に関して、一応仕様はあるのですが、穴だらけなんですよね。

受信側がちゃんとしていても送信側の環境次第では文字化けします。

メールに関しては受信側と送信側相互に環境を合わせないと絶対に文字化けしない状況は作り出せないのですよ。


前置きはこの程度にして対応策を書いておきます。

メールがIMAPでWEBメールを使える場合、文字化けが起こったメールをWEBメールで受信してみてください。

かなりの確率でファイル名が文字化けしていない状況でダウンロードできると思います。


最後に追記:

メール自体のエンコードに問題がなく、他の環境では正しく表示され、また、Mac内のメールボックスに移動すれば正しく表示される状況はバグとしか思えません。

メール本文と添付ファイルの文字化けに関して、電子メールの仕様書通りにプログラムをかけていない場合はバグです。

でも仕様書通りにプログラムを書いているにもかかわらず、不具合が起こるのであればバグではなくて仕様書の問題です。

電子メールに関しては、開発当初アルファベットの文字だけでの通信でした。

その仕様をつぎはぎで足しながら現在の仕様にアップデートされてきましたので、一貫性のある仕様にはなっていないのですよ。

これは世界中のメール送信側、メール中継所、メール受信側がUnicodeに完全対応しない限り起こり得る話なのです。


多分Appleはレガシーな環境に今更対応する気はさらさらなく、Unicodeが扱えればいいんじゃないってことだと思う。

2022/11/22 20:54 やすどん への返信

お返事ありがとうございます。

もちろん、送り元が古い環境でエンコードがShift-JISやEUCなどでcharsetの設定も間違っていれば文字化けは仕方ないと思いますし、

確かにそれに対応しろというのはお門違いかと思います。


ただ、今時仕事でそのような古い環境を使っているはむしろ少数派で、添付ファイルが文字化けしている受け取ったメールはいずれも

文字セット:UTF-8、エンコード方式:Base64で統一されており、よくある昔のメール文字化け問題とは違うと思います。


届いたメールソースを元にBase64デコードかけると正しいファイル名が得られるので中継サーバーの問題でもない気がします。


もちろんGmailアカウント(IMAP)のため、ブラウザでログインすれば正しい添付ファイル名は表示されますが、

令和にもなってAppleの標準メールアプリがスタンダードなメール規格で文字化けしてしまうのが信じられないというか、情けないというか。


また、添付ファイル付きメールをもう一度確認していて思ったのですが、

メールソースでは、

filename="=?UTF-8?B?4piFUjTli6Tli5nooajvvIjljLvluKvku6XlpJbvvIkxMeaciC54bHN4?="

となっていて、これはUTF-8/Base64指定なのでデコードすると

"★(原本)R4超過勤務命令簿様式11月.xlsx"

になるわけですが、メールでの表示やダウンロードした後のファイル名は

"?????R4????? 令簿様式11月.xlsx"

となってしまいます。


他の添付ファイルもやはり途中一部分は正常になっていたりと、単純なエンコードミスでは説明がつきません。

また、同じメールを「このMac内」に新たに作成したメールボックスへ移動させると、驚くべきことにきちんと表示されるようになります。

つまり、同じメールアプリ内でも受信ボックスでの文字処理だけが上手くいっていないことになります。


文字のデコードアルゴリズムをわざわざ同じアプリ内で変えているとは考えにくく、

可能性としては受信メールボックスではメールプライバシー保護が働いているためそのフィルタの影響かとも思いましたが、機能を切っても変わりませんでした。


良くあるメール文字化け問題として一纏めにされた結果、Apple本社にはバグとして認識されておらず、長年にわたって改善がみられないとすれば問題ですね。日本語環境での固有バグだとすればなかなか伝わらないのでしょうか。現代のメール環境でのトラブルなので、是非とも直して欲しい。

2022/11/26 20:23 亀どん への返信

なるほど、文字化けの理由がストンと腑に落ちました。

と同時になかなか根深い問題でもあることが分かったので、難しいかもしれませんが、フィードバックはするだけしてみます。

どちらが正しいというわけでも無いと思いますが、不便なのはユーザーですからね、、、

ありがとうございました。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

受け取ったメールの添付ファイル名の文字化けについて

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。