Скачивание вложений из электронных писем – привычная операция для большинства пользователей. Однако иногда вместо ожидаемого отдельного файла появляется ZIP‑архив. Причины этого явления могут быть разными: от особенностей работы почтового сервиса до мер безопасности. В статье разберём, какие технические и организационные факторы заставляют почтовый клиент упаковывать файлы в архив, и что делать, если это нежелательно.
Содержание
- Основные причины архивирования при скачивании
- Как разные почтовые сервисы реализуют функцию «Скачать одним архивом»
- Безопасность и защита от вредоносного кода
- Технические детали: MIME‑типы, Content‑Disposition и серверные скрипты
- Как получить отдельные файлы без архива
Основные причины архивирования при скачивании
Существует несколько типовых сценариев, когда почтовый сервис предлагает загрузить вложения в виде ZIP‑архива:
- Множественные вложения в одном письме. Чтобы упростить процесс, многие сервисы (Mail.ru, Gmail, Yahoo) добавляют кнопку «Скачать одним архивом». Пользователь получает один файл, а не десятки отдельных запросов к серверу.
- Ограничения браузера и кросс‑доменных запросов. При попытке скачать несколько файлов подряд браузер может блокировать запросы из‑за политики CORS. Архив – единственный способ обойти эту проблему.
- Оптимизация трафика. Сжатие файлов в ZIP часто уменьшает объём передаваемых данных, что особенно важно при медленном соединении.
- Защита от случайного изменения файлов. Архив сохраняет оригинальные имена, даты и структуру вложений, предотвращая их «размытие» при сохранении.
- Требования корпоративных политик. В некоторых компаниях администраторы настраивают серверы так, чтобы все вложения автоматически упаковывались, облегчая последующее архивирование и хранение.
Примечание: Если в письме только один файл, большинство сервисов всё равно позволяют скачать его напрямую, но иногда из‑за настроек сервера он всё равно попадает в ZIP.
Как разные почтовые сервисы реализуют функцию «Скачать одним архивом»
Mail.ru / Яндекс.Почта
В интерфейсе Mail.ru при наличии нескольких вложений появляется ссылка «Скачать одним архивом». При нажатии сервер формирует ZIP‑файл «on‑the‑fly» и отдает его клиенту. Если вложений более 10–15, процесс может занять несколько секунд.
Gmail
Google предлагает несколько вариантов:
- Для небольшого количества файлов – отдельные кнопки «Скачать» рядом с каждым вложением.
- Для более чем 5 файлов – всплывающее окно с предложением «Скачать всё как ZIP». Архив создаётся в сервисе Google Drive и ссылка отправляется пользователю по электронной почте (см. Google Takeout).
Outlook.com / Office 365
Microsoft использует технологию Content‑Disposition: attachment. При множественном скачивании пользователь получает архив, сформированный на стороне сервера. В корпоративных версиях (Exchange) администраторы могут отключить эту функцию через политику AttachmentDownloadPolicy.
Thunderbird и другие почтовые клиенты
Клиенты, работающие по протоколу IMAP/POP3, обычно сохраняют вложения «как есть». Однако при экспорте писем в виде .eml или .mbox все вложения автоматически упаковываются в один архивный файл, чтобы упростить перенос.
Безопасность и защита от вредоносного кода
Одной из главных причин, по которой сервисы могут принудительно архивировать файлы, является защита от вредоносных вложений. Рассмотрим основные аспекты:
- Сканирование антивирусом. При загрузке вложения сервер проверяет его на вирусы. Если файл подозрителен, он может быть «перепакован» в ZIP и помечен как потенциально опасный, чтобы пользователь мог открыть его в изолированном режиме.
- Политика «конфиденциального режима». В Gmail, например, отправитель может включить Confidential mode, который ограничивает возможность скачивания оригинальных файлов. В этом случае система предлагает скачать «защищённый» архив.
- Защита от фишинга. При попытке скачать файл, который выглядит как документ, но имеет скрытое расширение (например,
.pdf.exe), сервер может автоматически упаковать его, чтобы пользователь увидел реальное расширение после распаковки.
Эти меры объясняют, почему даже текстовый файл иногда скачивается в виде ZIP‑архива, как описано в пользовательском вопросе «При скачивании любого файла с почты, даже просто текстового, скачиваеться неизвестный зип архив».
Технические детали: MIME‑типы, Content‑Disposition и серверные скрипты
Для понимания процесса полезно знать, как именно сервер сообщает браузеру о типе скачиваемого ресурса.
4.1 MIME‑тип
При обычном скачивании вложения сервер отправляет Content-Type, например:
Content-Type: application/pdf
Если файл упакован в архив, тип меняется на:
Content-Type: application/zip
4.2 Content‑Disposition
Ключевой , определяющий, как браузер должен обработать файл:
Content-Disposition: attachment; filename="document.pdf"
Для архивов:
Content-Disposition: attachment; filename="attachments.zip"
4.3 Серверные скрипты
Большинство современных почтовых сервисов используют скрипты на Python, PHP или Node.js, которые при запросе «download_all» собирают все вложения, упаковывают их в zipfile.ZipFile (Python) или archiver (Node) и отдают клиенту. Пример упрощённого кода на Python:
import zipfile, io, flask
@app.route('/download_all')
def download_all:
zip_buffer = io.BytesIO
with zipfile.ZipFile(zip_buffer, 'w') as z:
for attachment in get_attachments:
z.writestr(attachment.filename, attachment.content)
zip_buffer.seek(0)
return flask.send_file(zip_buffer,
mimetype='application/zip',
as_attachment=True,
download_name='attachments.zip')
4.4 Ограничения браузеров
Некоторые браузеры (особенно мобильные) не поддерживают множественный download в одном запросе, поэтому сервер вынужден собрать архив.
Как получить отдельные файлы без архива
Если вам не нужен архив, есть несколько проверенных способов:
- Скачать файлы по отдельности. В большинстве интерфейсов рядом с каждым вложением есть кнопка «Скачать». Это самый простой способ.
- Использовать почтовый клиент. Программы Thunderbird, Outlook, The Bat! позволяют сохранять вложения напрямую в папку без упаковки.
- API почтового сервиса. Большинство сервисов (Gmail API, Mail.ru API) предоставляют метод
messages.attachments.get, который возвращает файл в оригинальном виде. Пример на Python с использованиемgoogle-api-python-client:
service.users.messages.attachments.get( userId='me', messageId=msg_id, id=attachment_id ).execute
- Скрипты для массовой загрузки. Если нужно собрать вложения из всех писем, можно написать скрипт, который перебирает сообщения и сохраняет каждый файл в отдельную папку. Пример на
Node.js:
const {google} = require('googleapis');
async function downloadAll {
const gmail = google.gmail({version: 'v1', auth});
const res = await gmail.users.messages.list({userId: 'me'});
for (const msg of res.data.messages) {
const m = await gmail.users.messages.get({userId: 'me', id: msg.id});
for (const part of m.data.payload.parts) {
if (part.filename) {
const att = await gmail.users.messages.attachments.get({
userId: 'me',
messageId: msg.id,
id: part.body.attachmentId
});
// сохраняем att.data в файл
}
}
}
} - Отключить автоматическое архивирование. В некоторых сервисах (например, в корпоративных настройках Exchange) администратор может отключить политику
AttachmentDownloadPolicy. Обратитесь к администратору, если это критично. - Изменить пользовательские настройки браузера. В Firefox можно включить
browser.download.useDownloadDirи отключить запросы на «запаковать», но это работает только при отдельном скачивании.
Скачивание файлов из почты в виде ZIP‑архива – это не ошибка, а продуманный механизм, который решает несколько задач одновременно:
- Упрощение массовой загрузки нескольких вложений.
- Оптимизация трафика за счёт сжатия.
- Повышение уровня безопасности, позволяя пользователю увидеть реальное расширение и содержимое файла только после распаковки.
- Соответствие ограничениям браузеров и корпоративным политикам.
Если архивирование нежелательно, используйте почтовый клиент, API сервиса или собственные скрипты для получения файлов в оригинальном виде. При этом помните, что любые попытки «обойти» защиту могут увеличить риск загрузки вредоносного кода, поэтому всегда проверяйте файлы антивирусом.
Надеемся, что статья помогла понять, почему файлы из почты скачиваются архивом и как управлять этим процессом в зависимости от ваших потребностей.
Дата публикации: 10 июля 2026 г;