2012-04-17 36 views
6

Tôi có một hệ thống là giải pháp trong nhà cố gắng gửi hóa đơn qua email cho khách hàng. Hệ thống này hoạt động tốt ngoại trừ một khách hàng nhận được các tệp .dat thay vì tệp .pdf được tạo độc đáo mà mọi người khác nhận được.Các tệp đính kèm PDF đang thay đổi thành các tệp DAT không sử dụng được

Tôi đã nghiên cứu vấn đề và nhiều vấn đề liên quan đến Outlook gửi email (không sử dụng triển vọng) và chia nhỏ tệp vì nó lớn (không phải, chúng tôi có thể sử dụng email tốt.)

Các tệp được đổi tên thành một cái gì đó như "= _utf-8_B_Q29uc29saWRhdGVkIEludm9pY2VzIGZv.dat" thay vì "1180426.pdf".

Sau khi tiêu đề trên cả hai tệp chỉ là các dòng ký tự không có ý nghĩa gì đối với tôi.

các tiêu đề của các tập tin .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 

Có ai có bất kỳ ý tưởng về lý do tại sao điều này xảy ra?

+0

bạn có cố gắng thay đổi "hóa đơn" thành "giảm giá" không? có lẽ nó sẽ giải quyết vấn đề :) –

+0

có vẻ như pdf của bạn đang được mã hóa base64. kể từ khi bạn có thể gửi hóa đơn tốt bằng tay, tôi nghi ngờ máy chủ thư của bạn là để đổ lỗi. bạn có cố gắng sử dụng hệ thống để gửi cùng một pdf cho hai khách hàng không? nếu một trong những vẫn không thành công, tôi sẽ nghi ngờ đó là máy chủ mail của khách hàng (nhận được kết thúc) vấn đề. –

+0

trước tiên, khi bạn nói "không phải vậy, chúng tôi có thể thủ công gửi email tốt", bạn đã gửi tệp theo cách thủ công tới SAME client không có vấn đề gì chưa? Nếu có, thì không đọc thêm nữa. Tôi sẽ cố gắng tìm một số giải pháp khác. Nếu không, nó có thể là vấn đề ở cuối máy khách (máy chủ thư của anh ấy sẽ không chấp nhận tệp đính kèm lớn)? bạn có thể yêu cầu khách hàng kiểm tra với nhà cung cấp dịch vụ email của mình không? – tumchaaditya

Trả lời

5

Từ nhận xét:

Có một ký tự Unicode lạ được in thay vì một dấu nối ở đây filename: "... Chống thấm - Universal City, ...". Có thể là mailserver của ai đó nhạy cảm với các ký tự không phải ASCII và mã hóa nó thành base64 như là kết quả. Thay đổi nó thành một dấu gạch nối ASCII thông thường và nó sẽ ổn.


Làm thế nào tôi tìm thấy nó:

Thứ nhất, đây là bộ giải mã base64 online Tôi đã sử dụng: http://www.opinionatedgeek.com/dotnet/tools/base64decode/

Thứ hai, tôi bắt đầu bằng cách kết hợp tất cả các chuỗi base64 từ tiêu đề. Nó được chia thành nhiều phân đoạn: cho tiêu đề đầu tiên, có 5 phân đoạn. Các phân đoạn là phần dài giữa các dấu chấm hỏi. Đưa tất cả chúng lại với nhau, bạn sẽ có được:

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

đặt này vào các bộ giải mã cho:

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

Một tập hợp các phân đoạn base64. Đoạn đầu tiên có vẻ như nó bị cắt bỏ, vì vậy tôi cho rằng những gì đã đi vào tên tệp thực sự là một phần của nó.Vì vậy, tôi thêm vào trước nó với điều đó và nhận được:

Q29uc29saWRhdGVkIEludm9pY2VzIGZvciBBbHBoYSBJbnN1bGF0aW9u 
ICYgV2F0ZXJwcm9vZmluZyAtIEFscGhhIEluc3VsYXRpb24gJiBXYXRl 
cnByb29maW5nIOKAkyBVbml2ZXJzYWwgQ2l0eSwgKDIwMTItMDQtMTMp 
LnBkZg== 

Đưa này vào bộ giải mã sẽ làm cho nó nhổ ra một file .bin vì nhân vật phi ASCII. Tệp bin chứa tên tệp đầy đủ của tệp PDF.

Mở file bin trong một trình soạn thảo 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 

Các em-dash nhô ra như một ngón tay cái đau.

+0

Cảm ơn sự giúp đỡ của bạn. Bạn đã sử dụng cái gì để tìm chính xác? – JustinDoesWork

+0

Có rất nhiều nội dung liên quan, vì vậy tôi sẽ cập nhật câu trả lời của mình với quy trình. –

+0

Tôi đã xóa tên khách hàng khỏi câu trả lời. Thay đổi chữ cái thành *. – JustinDoesWork

0

Bạn có đặt loại MIME khi hệ thống của bạn đính kèm tệp PDF vào thư email không? Nếu vậy, bạn đang sử dụng cái gì? Đó là ảnh chụp trong bóng tối, nhưng có thể hệ thống của bạn không chính xác bằng cách sử dụng ứng dụng/pdf và một số kết hợp các máy chủ thư và ứng dụng khách liên quan bị nhầm lẫn và phản hồi bằng cách thay đổi nó thành .dat.

2

Tôi nghĩ @Jeff E đã làm đúng: có một ký tự không phải ASCII trong tên tệp và điều đó gây ra sự cố ở đầu này hoặc đầu kia. Khi bạn gửi email theo cách thủ công, tôi đoán là dấu gạch ngang được thay thế bằng dấu gạch nối thông thường hoặc một số ký tự khác (ví dụ: _) bởi ứng dụng thư của bạn. Nếu bạn thay đổi dấu gạch ngang trong "Chống thấm - Universal City" thành "-" tôi nghĩ điều này sẽ hoạt động.

(. Nếu có, đại diện nên đến Jeff, khi ông phát hiện ra unicode)

Các vấn đề liên quan