Почему вложения писем размером 25Мб не доставляются, ведь ограничение стоит 25Мб?

Материал из MultiWiKi
Перейти к: навигация, поиск

Почему вложения писем размером 25Мб не доставляются, ведь ограничение стоит 25Мб?


Дело в том что каждое электронное почтовое сообщение кодируется по алгоритму MIME base64

Стандартное сообщение SMTP (также известное как сообщение обычного текста) состоит из оболочки сообщения и содержания сообщения – заголовка и тела сообщения. Эти элементы основаны на простом 7-разрядном тексте US-ASCII. Когда сообщение содержит элементы, не являющиеся простым текстом US-ASCII, эти элементы необходимо закодировать. При работе с таким не текстовым содержимым, включая вложения, для кодирования используется MIME. Недостатком Base64 является то, что он увеличивает вложения на 33%

Алгоритм base64 заменяет все символы, при этом три символа заменяются на 4. Тем самым уменьшается объем полезного сообщения.

Т.е размер закодированного файла больше размера исходного примерно на 33% в случае base64. Поэтому, когда вы посылаете хоть сколько-нибудь сжимаемые бинарные файлы (например, ехе-программы), желательно перед обработкой кодировщиком их заархивировать, чтобы уменьшить размер письма. Более того, даже для посылки обычного текста большого объема имеет смысл файл с этим текстом заархивировать, а затем закодировать - размер письма будет меньше, чем объем исходного текста. (Конечно, вы должны быть уверены, что получатель письма сможет произвести обратные действия - декодирование и разархивирование).


Примечание: RFC1421 RFC2045