2012-04-17 5 views
6

Ich habe ein System, das eine interne Lösung ist, die versucht, Rechnungen per E-Mail an Kunden zu senden. Dieses System funktioniert großartig, außer dass ein Client .dat-Dateien anstelle der schön generierten .pdf-Dateien erhält, die alle anderen erhalten.PDF-Anhänge werden in unbrauchbare DAT-Dateien geändert

Ich habe das Problem untersucht und viele Dinge deuten auf Probleme mit Outlook E-Mail (nicht Outlook) und die Aufteilung der Dateien, weil es zu groß ist (es ist nicht, wir manualy die E-Mail in Ordnung senden.)

Die Dateien werden umbenannt in etwas wie "= _utf-8_B_Q29uc29saWRhdGVkIEludm9pY2VzIGZv.dat" anstelle von "1180426.pdf".

Nach den Überschriften auf beiden Dateien sind nur Zeilen von Zeichen, die mir nichts bedeuten.

die Header der DAT-Dateien: 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 

Hat warum eine Idee jemand dies geschieht?

+0

Haben Sie versucht, "Rechnung" in "Rabatt" zu ändern? vielleicht löst es das Problem :) –

+0

sieht so aus, als ob Ihr PDF base64-codiert ist. Da Sie die Rechnungsgebühr manuell senden können, vermute ich, dass Ihr Mail-Server dafür verantwortlich ist. Haben Sie versucht, das System zu verwenden, um dasselbe PDF an zwei Clients zu senden? Wenn noch immer ein Fehler auftritt, vermute ich, dass es sich um das Problem des Mailservers des Empfängers (Empfangsende) handelt. –

+0

Erstens, wenn Sie sagen "es ist nicht, wir können die E-Mail manuell geschickt senden", haben Sie die Datei manuell an SAME-Client ohne Probleme gesendet? Wenn ja, dann lese nicht weiter. Ich werde versuchen, eine andere Lösung zu finden. Wenn nicht, könnte es am Client-Ende ein Problem sein (sein Mail-Server wird keine großen Anhänge akzeptieren)? können Sie den Kunden bitten, sich an seinen E-Mail-Dienstanbieter zu wenden? – tumchaaditya

Antwort

5

Aus den Kommentaren:

Es ist ein seltsames Unicode-Zeichen anstelle einen Bindestrich hier im Dateinamen gedruckt werden: "... Abdichtung - Universal City, ...". Es könnte sein, dass jemandes Mailserver empfindlich auf Nicht-ASCII-Zeichen reagiert und dies als Ergebnis in base64 kodiert. Ändern Sie es in einen regulären ASCII-Bindestrich und es sollte in Ordnung sein.


Wie ich es gefunden:

Zum einen ist hier der Online-base64 Decoder I verwendet: http://www.opinionatedgeek.com/dotnet/tools/base64decode/

Zweitens, begann ich durch all die base64-Strings aus dem Header verketten. Es ist in mehrere Segmente aufgeteilt: Für den ersten Header gibt es 5 Segmente. Die Segmente sind die langen Teile zwischen den Fragezeichen. sie alle zusammen setzen, erhalten Sie:

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

setzen diese in den Decoder gibt:

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

Ein weiterer Satz von base64 Segmente. Das erste Segment sieht aus, als ob es abgeschnitten ist, also nehme ich an, dass das, was in den Dateinamen hineinging, tatsächlich ein Teil davon ist.So prepend ich es mit, dass und bekommen:

Q29uc29saWRhdGVkIEludm9pY2VzIGZvciBBbHBoYSBJbnN1bGF0aW9u 
ICYgV2F0ZXJwcm9vZmluZyAtIEFscGhhIEluc3VsYXRpb24gJiBXYXRl 
cnByb29maW5nIOKAkyBVbml2ZXJzYWwgQ2l0eSwgKDIwMTItMDQtMTMp 
LnBkZg== 

Putting diese in den Decoder wird es eine .bin-Datei ausspucken machen wegen der Nicht-ASCII-Zeichen. Die bin-Datei enthält den vollständigen Dateinamen der PDF.

Öffnen der bin-Datei in einem Hex-Editor:

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 

Die em-dash klebt wie ein bunter Hund.

+0

Danke für Ihre Hilfe. Was hast du benutzt, um das genau zu finden? – JustinDoesWork

+0

Da ist viel Text drin, also werde ich meine Antwort mit dem Prozess aktualisieren. –

+0

Ich habe den Namen meines Kunden aus der Antwort entfernt. Ändern Sie die Buchstaben in *. – JustinDoesWork

0

Legen Sie einen MIME-Typ fest, wenn Ihr System die PDFs an die E-Mail-Nachrichten anfügt? Wenn ja, was benutzt du? Es ist ein Schuss in die Dunkelheit, aber es ist möglich, dass Ihr System nicht richtig Anwendung/pdf verwendet und einige Kombination der Mail-Server und Clients beteiligt ist verwirrt und reagieren, indem Sie es in eine .dat.

2

Ich denke, @ Jeff E hat es richtig gemacht: Es gibt ein Nicht-ASCII-Zeichen im Dateinamen, und das verursacht Probleme an dem einen oder anderen Ende. Wenn Sie die Datei manuell per E-Mail versenden, wird der Bindestrich durch einen regulären Bindestrich oder ein anderes Zeichen (z. B. _) von Ihrem E-Mail-Client ersetzt. Wenn Sie den Strich in "Waterproofing - Universal City" auf "-" ändern, sollte das funktionieren.

(. Ist dies der Fall, rep Jeff gehen soll, als er die Unicode-spotted)

Verwandte Themen