Почтовое вложение EOL (конец строки) проблема

Я отправляю простую почту на Windows XP с 4 вложениями:

  • dummy.txt (конец строки: CRLF)
  • dummy.xml (конец строки: CRLF)
  • dummyjustlf.txt (конец строки: LF)
  • dummyjustlf.xml (конец строки: LF)

По словам клиента я отправляю почту с изменением окончаний строки:

  • Outlook '07: EOL неизменен
  • Thunderbird 3: EOL dummyjustlf.txt изменяется на CRLF, другие неизменны
  • Почта Java: EOL dummyjustlf.txt и dummyjustlf.xml изменился на CRLF, другие неизменны

Как это поведение указано? Там RFC документирует это? Клиент решает, как отправить или как получить почту с вложениями и преобразовать EOL путем, он хочет?

2
задан 19.05.2011, 15:54

0 ответов

Вероятно, комбинация почтового клиента и платформы Вы работаете.

Идеально, вложения должны всегда оставаться такими же, и если бы файлы были двоичными (или вставьте двоичный контейнер, такой как .zip) то не было бы проблемы.

То, что я подозреваю, происходит, клиентское приложение, вставляет сообщения простого текста как вложения с "заключенным в кавычки печатаемым" кодированием, а не Base64 (что двоичные файлы кодируются как). Для проверки этого необходимо просмотреть необработанные данные сообщения в почтовом приложении получения:

  • В Gmail это - "Шоу, Исходное" в меню рядом с верхней правой кнопкой Reply.
  • В Thunderbird, Представлении-> Источник сообщения
  • Существуют, вероятно, эквиваленты в почте Java и Outlook.

Необходимо искать вложения, которые запускаются с заголовков как:

--0016e65c71b2a252eb04a3a1f642
Content-Type: text/plain; charset=US-ASCII; name="test.txt"
Content-Disposition: attachment; filename="test.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gnvt3nlf0

Если "Content-Transfer-Encoding" - что-то другое, чем "base64" (такой, как "заключено в кавычки - печатаемый"), и Вы видите текстовое содержание текстовых файлов ниже, то это вероятно источник ошибки, поскольку окончания строки, вероятно, нормализованы передающим приложением, когда сообщение отправляется (большинство электронных писем послано как простой текст).

Кодирование Base64 преобразовывает двоичные файлы в простой текст, который может отправленный отправителем и преобразованный назад в двоичный файл снова в получателе, и не становится искаженным в простом тексте управляемый мир электронной почты. Это, вероятно, что Outlook делает для всех вложений, и что ТБ делает для .xml файлов.

4
ответ дан 08.12.2019, 06:28

Теги

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