Вопрос по pdf, email – PDF-вложения превращаются в непригодные для использования файлы DAT [закрыто]

6

У меня есть система, которая является внутренним решением, которое пытается отправить счета клиентам по электронной почте. Эта система прекрасно работает, за исключением того, что один клиент получает файлы .dat вместо красиво сгенерированных файлов .pdf, которые получают все остальные.

Я исследовал проблему, и многие вещи указывают на проблемы с отправкой электронной почты Outlook (без использования outlook) и разбиением файлов, потому что она слишком большая (это не так, мы можем вручную отправить письмо в порядке).

Файлы переименовываются во что-то вроде & quot; = _ utf-8_B_Q29uc29saWRhdGVkIEludm9pY2VzIGZv.dat & quot; вместо "1180426.pdf".

После заголовков обоих файлов - только строки символов, которые ничего не значат для меня.

заголовки файлов .dat: file1

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

file2

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

Кто-нибудь имеет представление о том, почему это происходит?

Во-первых, когда вы говорите «это не так», мы можем вручную отправить штрафное сообщение. Вы вручную отправили файл на тот же клиент без проблем? Если да, то не читайте дальше. Я попытаюсь найти другое решение. Если нет, это может быть проблемой на стороне клиента (его почтовый сервер не принимает большие вложения)? Вы можете попросить клиента проверить его с поставщиком услуг электронной почты? tumchaaditya
Здесь вместо имени дефиса в имени файла печатается странный символ Unicode: & quot; ... Гидроизоляция & # x2013; Universal City, ... ". Может случиться так, что чей-то почтовый сервер чувствителен к не-ASCII-символам и в результате кодирует его в base64. Что произойдет, если вы измените свою систему электронной почты, чтобы использовать другое имя файла? Можете ли вы найти эту часть в системе и заново ввести дефис? Jeff E
Да, мы можем отправить одно и то же письмо клиенту, и оно отлично работает. Размер вложений менее 200 КБ, поэтому он не является большим размером вложений. JustinDoesWork
Вы пытаетесь изменить "счет-фактуру"? на "скидку"? может быть, это решит проблему :) Ray Cheng
Похоже, ваш PDF кодируется в base64. Так как вы можете отправить счет-фактуру вручную, я подозреваю, что виноват ваш почтовый сервер. Вы пытаетесь использовать систему, чтобы отправить один и тот же PDF-файл двум клиентам? если одно все еще терпит неудачу, я буду подозревать, что это - проблема почтового сервера клиента (принимающей стороны). Ray Cheng

Ваш Ответ

3   ответа
0

когда ваша система присоединяет PDF-файлы к сообщениям электронной почты? Если так, что вы используете? Это выстрел в темноте, но возможно, что ваша система неправильно использует application / pdf, и некоторая комбинация задействованных почтовых серверов и клиентов становится запутанной и отвечает, меняя ее на .dat.

2

в имени файла есть символ, не относящийся к ASCII, и это вызывает проблемы на одном конце или другом. Когда вы отправляете файл по электронной почте вручную, я полагаю, что ваш почтовый клиент заменяет символ тире на обычный дефис или какой-либо другой символ (например, _). Если вы измените черту в & quot; Гидроизоляция & # x2013; Universal City & quot; на & quot; - & quot; Я думаю, что это должно работать.

(Если это так, представитель должен пойти к Джеффу, так как он заметил юникод.)

5

Здесь вместо имени дефиса в имени файла печатается странный символ Unicode: & quot; ... Гидроизоляция & # x2013; Universal City, ... ". Может случиться так, что чей-то почтовый сервер чувствителен к не-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==

Вводthis в декодер заставит его выплевывать файл .bin из-за не-ASCII символа. Файл bin содержит полное имя файла PDF.

Открытие bin-файла в шестнадцатеричном редакторе:

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

Эм-тире торчит, как больной большой палец.

Error: User Rate Limit Exceeded JustinDoesWork
Error: User Rate Limit Exceeded JustinDoesWork
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы