Оптимальный максимальный размер письма (01.05.2012). Печать
2012 - Май
01.05.2012 16:51
Save & Share

Иногда возникает такая ситуация, что вы пытаетесь отправить файл по почте, но он не влезает в одно письмо; и приходится сначала разбивать файл на 2 части, чтобы потом отправить 2 письма. Это не очень удобно, поэтому эмпирическим путем я рассчитал максимальный размер файла, который можно вкладывать в аттач. Тестирование проводилось на программе The Bat v.4.2.36.4. В эксперименте участвовали почтовые ящики masterhost, mail, gmail, yandex и rambler.

Прежде всего, о текущей ситуации с максимальным размером электронного письма. Многие провайдеры электронной почты шагнули вперед и предоставляют своим клиентам возможность принимать и отправлять почтовые письма весом 30 MB. Некоторые провайдеры дают возможность отправлять только 10 MB, но обеспечивают способность почтового ящика принимать 30. Поэтому 30 МВ на текущий момент - это эталон, обеспечивающий беспрепятственный прием вашим почтовым ящиком письма от любого инородного провайдера почты.

Что такое 30 MB. Это 31 457 280 байт, и ни байтом больше. Это итоговый максимальный размер входящего письма, который принимает ваш почтовый ящик. Стоит пояснить, что при передаче письма от одного почтового ящика к другому - размер письма будет увеличен на 1,5 KB и более (трассировка письма и прочая служебная информация). В итоге размер входящего письма получателя всегда будет больше размера исходящего письма отправителя. Поэтому размер входящего письма получателя и называется итоговым.

Теперь из чего состоит само электронное письмо:
- тело письма. Оно-то и раздувается в процессе шествия письма между серверами. Размер тела пустого письма в The Bat составляет 359-362 байта (причины флуктуации неизвестны). Поэтому точный итоговый размер для тела письма рассчитать невозможно;
- поля заголовка письма: темы, адрес отправителя, получателя и прочие поля. Сохранение этих полей происходит, как правило, в кодировке UTF-8. UTF-8 - это формат с плавающим размером символа, от 1 до 4 байт + в программе The Bat может использоваться сжатие записей в заголовке. Поэтому точный итоговый размер для заголовка письма рассчитать невозможно. Кстати, то же самое касается названий файлов, которые вы вкладываете в письмо; а также текста в теле письма;
- сами файлы. При формировании письма у отправителя происходит шифрование контента письма. Точную величину не говорит никто, на слуху - цифра в 30%, прибавляемая к начальному объему файла. Сравню ее в итоге со своими вычислениями.

Вычисления проведены с погрешностью. Как минимум из-за того, что файл в письме имел длинное название с русскими и латинскими буквами. Эмпирическим путем было выведено:
- если название файла - "Dj Лeвинcкий - Unistreet.part1.rar";
- если в поле получателя указан адрес длиной 21 символ;
- если тело письма не содержит текста;
- то оптимальный размер письма в этом случае составит 22 953 790 байт.

Если учитывать флуктуации в сторону увеличения итогового максимального размера письма:
- если вы отправляете 1 файл одному получателю в письме без текста - используйте 22 953 790 байт при разбиении файла вашей любимой программой. Лично я разбиваю программой WinRAR;
- если вы отправляете файл с длинным именем и/или нескольким получателям - оставляйте запас, 22 953 000 байт;
- если тело вашего письма содержит текст - оставляйте запас, 22 940 000 байт и меньше;
- расчет процента шифрования контента письма. (31 456 068 - 22 953 790) / 22 953 790 * 100% = 37%. При соответствующих настройках в The Bat "Кодирование при передаче не-ASCII символов": в теле письма - "Quoted-Printable (получитаемо)", в заголовке письма - "Авто";
- указанные размеры в байтах система показывает как 21,8 MB (размер файла в его свойствах). Эту цифру можно считать критической для оценки размера файла перед отправкой.

Обновлено ( 03.08.2012 20:18 )