Отправить большой файл по электронной почте — задача, с которой сталкиваются все. Но далеко не все знают, что у почтовых сервисов есть жёсткие ограничения на размер вложений. Превышение лимита приводит к ошибке отправки, а сам файл либо не доходит до адресата, либо обрезается. В этой статье разберём реальные лимиты популярных сервисов, почему они меньше, чем кажется, и как правильно передавать большие файлы.
Стандартные лимиты почтовых сервисов
Большинство крупных почтовых провайдеров установили одинаковый лимит на размер вложения — 25 МБ. Вот актуальные ограничения на 2024 год:
- Gmail — максимальный размер вложения 25 МБ. При превышении Gmail автоматически предлагает загрузить файл на Google Drive и вставить ссылку
- Mail.ru — лимит 25 МБ на одно вложение, суммарно до 100 МБ в письме
- Яндекс.Почта — максимум 25 МБ на одно вложение. Большие файлы предлагается загрузить на Яндекс.Диск
- Outlook / Hotmail — ограничение 25 МБ для обычных аккаунтов
- Корпоративный Exchange — лимит устанавливается администратором, чаще всего 10–50 МБ
Реальные ограничения: эффект Base64-кодирования
Здесь кроется важный нюанс, о котором мало кто знает. Электронная почта использует протокол SMTP, который передаёт данные только в текстовом формате. Любые бинарные файлы (изображения, PDF, архивы) перед отправкой кодируются в формат Base64.
Base64-кодирование увеличивает размер файла примерно на 33–37%. Это значит:
- Файл размером 18 МБ после кодирования займёт около 24–25 МБ
- Файл 25 МБ превратится в 33–34 МБ и не пройдёт через лимит в 25 МБ
- Реальный безопасный размер вложения — не более 17–18 МБ
Именно поэтому пользователи нередко получают ошибку при отправке файла в 20 МБ, хотя лимит формально 25 МБ.
Как обойти ограничения на размер вложений
Облачные хранилища
Самый удобный способ передать большой файл — загрузить его в облако и отправить ссылку:
- Google Drive — бесплатно до 15 ГБ, легко поделиться ссылкой прямо из Gmail
- Яндекс.Диск — 10 ГБ бесплатно, интегрирован с Яндекс.Почтой
- Dropbox — 2 ГБ бесплатно, удобные публичные ссылки
- OneDrive — 5 ГБ бесплатно, интегрирован с Outlook
Сжатие файлов
Перед отправкой можно сжать файл в архив. ZIP и 7z дают хороший результат для текстовых файлов, документов и некоторых графических форматов. Для PDF и JPEG сжатие обычно минимально, так как они уже сжаты.
Настройки PHP для загрузки файлов
Если вы разрабатываете веб-приложение с отправкой файлов через форму, ключевые параметры PHP в php.ini:
|
1 2 3 4 5 6 7 8 9 10 11 |
; Максимальный размер загружаемого файла upload_max_filesize = 25M ; Максимальный размер тела POST-запроса (должен быть >= upload_max_filesize) post_max_size = 30M ; Максимальное время выполнения скрипта (в секундах) max_execution_time = 300 ; Максимальное время ожидания входных данных max_input_time = 300 |
Параметр post_max_size должен быть больше upload_max_filesize, так как POST-запрос содержит не только сам файл, но и остальные поля формы.
Настройка лимитов вложений в Битрикс
В 1С-Битрикс ограничения на размер вложений в письмах настраиваются в нескольких местах:
- Настройки почтового модуля: Главное меню → Настройки → Настройки модулей → Почта
- Параметры PHP на сервере:
upload_max_filesizeиpost_max_sizeвphp.ini - Настройки веб-сервера: для nginx параметр
client_max_body_sizeв конфигурации
|
1 2 |
# Пример настройки nginx client_max_body_size 30M; |
Все три ограничения работают независимо, и файл должен пройти через каждое из них. Если лимит PHP — 25 МБ, а nginx — 10 МБ, файл будет заблокирован на уровне nginx.
Практические советы
Какие файлы стоит сжать перед отправкой
- Документы Word (.docx), Excel (.xlsx) — хорошо сжимаются в ZIP
- Текстовые файлы, CSV, XML — отлично сжимаются (до 80–90%)
- PDF, JPEG, MP4 — сжатие даёт минимальный результат
- Архивы (.zip, .rar) — повторное сжатие бесполезно
Когда лучше отправить ссылку вместо файла
- Файл больше 15 МБ — используйте облачное хранилище
- Файл нужно будет обновлять — ссылка на облако всегда актуальна
- Файл отправляется нескольким получателям — ссылка экономит трафик
- Конфиденциальные данные — облако позволяет отозвать доступ в любой момент
Итог
Реальный безопасный лимит на вложение в письме — около 17–18 МБ, а не 25 МБ, как заявляют провайдеры. Это связано с Base64-кодированием, которое добавляет треть к размеру файла. Для передачи больших файлов используйте облачные хранилища: Google Drive, Яндекс.Диск или Dropbox. При разработке веб-приложений с загрузкой файлов проверяйте согласованность параметров upload_max_filesize, post_max_size в PHP и client_max_body_size в nginx.
