2012-04-17 9 views
6

Mam system, który jest rozwiązaniem wewnętrznym, próbującym wysyłać faktury pocztą elektroniczną do klientów. Ten system działa świetnie, z wyjątkiem sytuacji, gdy jeden klient otrzymuje pliki .dat zamiast ładnie wygenerowanych plików .pdf, które otrzymują wszyscy inni.Załączniki PDF zmieniają się w pliki bezużyteczne DAT

ja zbadali problem i wiele rzeczy wskazują na problemy z Outlook wysyłanie e-maili (nie używając Outlook) oraz dzielenia plików, ponieważ jest duża (to nie jest, możemy manualy wysłać grzywny e-mail.)

Pliki zmieniają nazwę na "= _utf-8_B_Q29uc29saWRhdGVkIEludm9pY2VzIGZv.dat" zamiast "1180426.pdf".

Po nagłówkach obu plików to tylko linie znaków, które nic dla mnie nie znaczą.

nagłówki tych plików .dat: plik1

=?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 

plik2

=?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 

Czy ktoś ma jakiś pomysł, dlaczego tak się dzieje?

+0

Czy próbowałeś zmienić "fakturę" na "rabat"? może to rozwiąże problem :) –

+0

Wygląda na to, że twój PDF jest zakodowany base64. ponieważ możesz wysłać fakturę dobrze ręcznie, podejrzewam, że Twój serwer pocztowy jest winien. czy próbowałeś użyć systemu, aby wysłać ten sam plik PDF do dwóch klientów? jeśli nadal się nie uda, podejrzewam, że jest to problem z serwerem pocztowym klienta. –

+0

po pierwsze, kiedy mówisz "nie jest, możemy ręcznie wysłać wiadomość e-mail dobrze", czy ręcznie wysłałeś plik do klienta SAME bez żadnych problemów? Jeśli tak, to nie czytaj dalej. Spróbuję znaleźć jakieś inne rozwiązanie. Jeśli nie, może to być problem na końcu klienta (jego serwer pocztowy nie akceptuje dużych załączników)? Czy możesz poprosić klienta, aby skontaktował się ze swoim dostawcą usług e-mail? – tumchaaditya

Odpowiedz

5

Z uwag:

Jest dziwny znak Unicode wydrukowana zamiast myślnik tutaj w nazwie pliku: "... Hydroizolacja - Universal City, ...". Możliwe, że czyjś serwer pocztowy jest wrażliwy na znaki spoza ASCII i w wyniku tego koduje go do base64. Zmień go na zwykły łącznik ASCII i powinno być dobrze.


Jak znalazłem go:

Po pierwsze, tutaj jest dekoder base64 Internecie użyłem: http://www.opinionatedgeek.com/dotnet/tools/base64decode/

drugie, zacząłem przez złączenie wszystkich ciągów base64 z nagłówka. Jest podzielony na wiele segmentów: dla pierwszego nagłówka jest 5 segmentów. Segmenty to długie części między znakami zapytania. Umieszczając je wszystkie razem, można uzyskać:

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

oddanie do dekodera to daje:

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

Inny zestaw segmentów base64. Pierwszy segment wygląda na odcięty, więc zakładam, że to, co znalazło się w nazwie pliku, jest jego częścią.Więc poprzedź go, że i dostać:

Q29uc29saWRhdGVkIEludm9pY2VzIGZvciBBbHBoYSBJbnN1bGF0aW9u 
ICYgV2F0ZXJwcm9vZmluZyAtIEFscGhhIEluc3VsYXRpb24gJiBXYXRl 
cnByb29maW5nIOKAkyBVbml2ZXJzYWwgQ2l0eSwgKDIwMTItMDQtMTMp 
LnBkZg== 

Umieszczenie to do dekodera będzie to wypluć plik .bin ze względu na charakter non-ASCII. Plik bin zawiera pełną nazwę pliku PDF.

Otwierając plik bin w edytorze hex:

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-kreska wystaje jak ból kciuka.

+0

Dzięki za pomoc. Co dokładnie wykorzystałeś, aby to dokładnie znaleźć? – JustinDoesWork

+0

Jest w to dużo tekstu, więc zaktualizuję swoją odpowiedź za pomocą tego procesu. –

+0

Usunąłem nazwę mojego klienta z odpowiedzi. Zmień litery na *. – JustinDoesWork

0

Czy ustawiasz typ MIME, gdy system dołącza pliki PDF do wiadomości e-mail? Jeśli tak, czego używasz? To strzał w ciemno, ale możliwe, że twój system nie używa poprawnie aplikacji/pdf, a niektóre kombinacje serwerów pocztowych i klientów biorących udział w tym procesie stają się zdezorientowane i reagują, zmieniając je na .dat.

2

Myślę, że @Jeff E ma to dobrze: w nazwie pliku znajduje się znak spoza ASCII, a to powoduje problemy na jednym lub drugim końcu. Kiedy ręcznie wysyłasz plik e-mailem, domyślam się, że em-Dash został zastąpiony zwykłym łącznikiem lub innym znakiem (np. _) Przez klienta poczty. Jeśli zmienisz myślnik w "Hydroizolacja - Universal City" na "-", myślę, że to powinno zadziałać.

(. Jeśli tak, rep powinien udać się do Jeffa, jak sam zauważył Unicode)

Powiązane problemy