Что означает Zend_Mime :: ENCODING_8BIT при отправке почты с Zend_Mail? - PullRequest
2 голосов
/ 01 июня 2010

В примере для Zend_Mail на http://framework.zend.com/manual/en/zend.mail.attachments.html они используют ENCODING_8BIT, но при поиске того, что может быть отправлено мне на http://msdn.microsoft.com/en-us/library/ms526992%28EXCHG.10%29.aspx, было (и это звучит логично для меня) объяснение, что 8-битное кодирование не имеет смысла для писем.

Edit:

Когда я использую эту кодировку для письма с вложением, я получаю письмо с поврежденным вложением в моем почтовом программном обеспечении (Thunderbird)

В каких случаях имеет смысл использовать ENCODING_8BIT?

Ответы [ 3 ]

4 голосов
/ 01 апреля 2012

Как все говорили, ENCODING_8BIT представляет кодировку передачи контента . В основном, 8BITMIME используется для Интернационализация . Он использует 8-битные наборы символов и, следовательно, позволяет отправлять любые символы, поддерживаемые в кодировке UTF8.

Как правило, почтовые программы без MIME отправляют 8-битные данные, но не включают Заголовки MIME, чтобы пометить сообщение как 8-битные данные. MIME почтовые программы должны справиться с этим без проблем. [источник]

Так что, в принципе, в действительности не имеет смысла использовать ENCODING_8BIT поверх другой кодировки, поскольку электронные письма в UTF8 являются сегодня стандартом . Также обратите внимание, что большинство адаптеров MTA ( Агент передачи сообщений , таких как Postfix и т. Д.) Автоматически переводят кодировку в 8BITMIME (UTF-8).

Вот хороший ресурс о кодировке 8BITMIME.

На практике расширение 8BITMIME имеет два эффекта:

  • Клиент избежит преобразования Q-P.
  • Клиент может добавить дополнительно информация в конце запроса MAIL: пробел, за которым следует либо "BODY = 7BIT" или "BODY = 8BITMIME".
1 голос
/ 20 июля 2010

Zend_Mime::ENCODING_8BIT устанавливает Content-Transfer-Encoding .
Content-Transfer-Encoding определяет методы для представления двоичных данных в текстовом формате ASCII.
Использование Zend_Mime::ENCODING_8BIT в примере представляет собой Ошибка .

Для отправки вложений вы всегда должны использовать Zend_Mime::ENCODING_BASE64

0 голосов
/ 01 июня 2010

Не для электронной почты, а для вложений. Если вы посмотрите RFC 2045 на странице 7:

RFC2045

«Двоичные данные» относятся к данным, где любые последовательность октетов вообще допускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...