7

請求書をクライアントに電子メールで送信しようとする社内ソリューションであるシステムがあります。このシステムは、他のすべての人が取得する適切に生成された.pdfファイルの代わりに1つのクライアントが.datファイルを取得することを除いて、うまく機能します。

私はこの問題を調査しましたが、Outlookが電子メールを送信し(Outlookを使用しない)、ファイルが大きいためにファイルを分割する(そうではないので、手動で電子メールを正常に送信できます)という問題を指摘することがたくさんあります。

ファイルの名前は、「1180426.pdf」ではなく「=_utf-8_B_Q29uc29saWRhdGVkIEludm9pY2VzIGZv.dat」に変更されます。

両方のファイルのヘッダーの後には、私には何の意味もない文字の行があります。

.datファイルのヘッダー:file1

 =?utf-8?B?Y2lCQmJIQm9ZU0JKYm5OMWJHRjBhVzl1Pz0NCiA9P3V0Zi04P0I/SUNZ?=\
\

 =?utf-8?B?Z1YyRjBaWEp3Y205dlptbHVaeUF0SUVGc2NHaGhJRWx1YzNWc1lYUnBi?=\
\

 =?utf-8?B?MjRnSmlCWFlYUmw/PQ0KID0/dXRmLTg/Qj9jbkJ5YjI5bWFXNW5JT0tB?=\
\

 =?utf-8?B?a3lCVmJtbDJaWEp6WVd3Z1EybDBlU3dnS0RJd01USXRNRFF0TVRNcD89?=\
\
 =?utf-8?B?DQogPT91dGYtOD9CP0xuQmtaZz09Pz0=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment

file2

 =?utf-8?B?YUdFZ1NXNXpkV3hoZEdsdmJpQW1JRmRoPz0NCiA9P3V0Zi04P0I/ZEdW?=\
\

 =?utf-8?B?eWNISnZiMlpwYm1jZ0xTQkJiSEJvWVNCSmJuTjFiR0YwYVc5dUlDWWdW?=\
\

 =?utf-8?B?MkYwWlhKd2NtOXY/PQ0KID0/dXRmLTg/Qj9abWx1WnlEaWdKTWdWVzVw?=\
\

 =?utf-8?B?ZG1WeWMyRnNJRU5wZEhrc0lDZ3lNREV5TFRBMExURXpLUzV3WkdZPT89?=\
\
 =?utf-8?B??="
Content-Transfer-Encoding: base64
Content-Disposition: attachment

なぜこれが起こっているのか誰かが何か考えを持っていますか?

4

3 に答える 3

6

コメントから:

ファイル名のハイフンの代わりに奇妙な Unicode 文字が印刷されています: "...防水 - ユニバーサル シティ、..."。誰かのメールサーバーが ASCII 以外の文字に敏感で、結果としてそれを base64 にエンコードしている可能性があります。通常の ASCII ハイフンに変更すれば問題ありません。


見つけた方法:

まず、私が使用したオンライン base64 デコーダーは次のとおりです: http://www.opinionatedgeek.com/dotnet/tools/base64decode/

次に、ヘッダーからすべての base64 文字列を連結することから始めました。複数のセグメントに分割されています。最初のヘッダーには、5 つのセグメントがあります。セグメントは、疑問符の間の長い部分です。それらをすべてまとめると、次のようになります。

Y2lCQmJIQm9ZU0JKYm5OMWJHRjBhVzl1Pz0NCiA9P3V0Zi04P0I/SUNZ
Z1YyRjBaWEp3Y205dlptbHVaeUF0SUVGc2NHaGhJRWx1YzNWc1lYUnBi
MjRnSmlCWFlYUmw/PQ0KID0/dXRmLTg/Qj9jbkJ5YjI5bWFXNW5JT0tB
a3lCVmJtbDJaWEp6WVd3Z1EybDBlU3dnS0RJd01USXRNRFF0TVRNcD89
DQogPT91dGYtOD9CP0xuQmtaZz09Pz0=

これをデコーダに入れると、次のようになります。

ciBBbHBoYSBJbnN1bGF0aW9u?=
=?utf-8?B?ICYgV2F0ZXJwcm9vZmluZyAtIEFscGhhIEluc3VsYXRpb24gJiBXYXRl?=
=?utf-8?B?cnByb29maW5nIOKAkyBVbml2ZXJzYWwgQ2l0eSwgKDIwMTItMDQtMTMp?=
=?utf-8?B?LnBkZg==?=

base64 セグメントの別のセット。最初のセグメントが途切れているように見えるので、ファイル名に入ったものは実際にはその一部であると思います。だから私はそれを前に付けて取得します:

Q29uc29saWRhdGVkIEludm9pY2VzIGZvciBBbHBoYSBJbnN1bGF0aW9u
ICYgV2F0ZXJwcm9vZmluZyAtIEFscGhhIEluc3VsYXRpb24gJiBXYXRl
cnByb29maW5nIOKAkyBVbml2ZXJzYWwgQ2l0eSwgKDIwMTItMDQtMTMp
LnBkZg==

これをデコーダーに入れると、非 ASCII 文字のために .bin ファイルが吐き出されます。bin ファイルには、PDF の完全なファイル名が含まれています。

bin ファイルを 16 進エディタで開く:

43 6F 6E 73 6F 6C 69 64 61 74 65 64 20 49 6E 76   Consolidated Inv
6F 69 63 65 73 20 66 6F 72 20 41 6C 70 68 61 20   oices for **** 
49 6E 73 75 6C 61 74 69 6F 6E 20 26 20 57 61 74   ********** & ***
65 72 70 72 6F 6F 66 69 6E 67 20 2D 20 41 6C 70   ********** - ***
68 61 20 49 6E 73 75 6C 61 74 69 6F 6E 20 26 20   ** ********** & 
57 61 74 65 72 70 72 6F 6F 66 69 6E 67 20 E2 80   ************* â€
93 20 55 6E 69 76 65 72 73 61 6C 20 43 69 74 79   “ ********* ****
2C 20 28 32 30 31 32 2D 30 34 2D 31 33 29 2E 70   , (2012-04-13).p
64 66                                             df

emダッシュは親指のように突き出ています。

于 2012-04-26T17:53:32.300 に答える
2

@Jeff Eはそれを正しく理解していると思います。ファイル名に非ASCII文字が含まれているため、一方または他方で問題が発生しています。ファイルを手動で電子メールで送信する場合、メールクライアントによってem-dashが通常のハイフンまたはその他の文字(例:_)に置き換えられていると思います。「防水–ユニバーサルシティ」のダッシュを「-」に変更すると、うまくいくと思います。

(もしそうなら、彼がユニコードを見つけたので、担当者はジェフに行くべきです。)

于 2012-04-26T08:42:28.747 に答える
0

システムが電子メール メッセージに PDF を添付するときに、MIME タイプを設定していますか? もしそうなら、あなたは何を使っていますか?これは暗闇の中のショットですが、システムが application/pdf を正しく使用しておらず、関連するメール サーバーとクライアントの組み合わせが混乱し、.dat に変更することで応答している可能性があります。

于 2012-04-25T21:04:07.353 に答える