Почтовые программы Outlook Express и TheBat! (а может, и некоторые другие) умеют бить электронные письма на части не больше заданного размера (например, 512 килобайт). Причём, делают это автоматически, для этого есть соответствующая настройка.
Пошло это со стародавних времён, когда интернет был медленным и модемным, а электронная почта на Яндексе ограничивалась двумя мегабайтами. Все пользовались "пиратскими" программами Outlook Express или TheBat!, а деление писем на части было не то что удобным или оправданным, но зачастую необходимым. Благодаря "пиратской" совместимости, проблем с получением таких писем не возникало.
Сегодня наступил прогресс, интернет стал быстрым, почтовые ящики — неограниченными, а почтовые программы — разнообразными. Появились программы, которые не умеют ни разбивать письма, ни склеивать обратно: в этом отпала необходимость.
Но некоторые пользователи Outlook Express или TheBat! забыли снять галочку с настроек, поэтому битые письма приходят до сих пор, периодически. Склеивать их надо вручную.
Как это выглядит?
Приходит несколько явно связанных писем. Тема письма содержит «part 1 of N», «part 2 of N» и т.д.
Внутри каждого такого почтового сообщения — никакого текста, никакой дополнительной информации, только файл, у которого нет даже имени. А так как он без имени, почтовый клиент генерирует его самостоятельно и произвольным образом.
Если у вас стоит Outlook Express или TheBat! — всё нормально. В смысле — почтовый клиент после получения всех частей автоматически склеит их, отдельные части удалит, а вам предоставит исходное письмо.
Это ни в коем случае не реклама Outlook Express. Просто констатация факта, что он умеет склеивать разбитые на части письма.
Всё остальное он делает просто отвратительно.
Если же вы получаете письма, к примеру, через Microsoft Outlook, Thunderbird или веб-интерфейс — части придётся склеивать вручную.
Склеиваем письмо из частей
1. Сохраните все вложения в отдельный каталог, переименуйте вложения в порядке очерёдности, согласно теме письма.
2. Зайдите в созданный каталог из консоли (Linux) или командной строки (Windows).
3.1. Команда для склейки писем в Linux:
cat * > all.eml
3.2. Команда для склейки писем в Windows:
type *.eml > all.eml
(спс. dmitry tarakanov) или
copy файл1+файл2+файл3+... all.eml
но в последнем случае все файлы придётся прописывать вручную.
4. all.eml — это собранное из частей исходное письмо. Его можно открыть любым почтовым клиентом.
Комментарии
dmitry tarakanov
#cid51156
Ответить
Над отдать должное, для Виндовс так же все просто
type *.eml >> all
При этом для программы Outlook Express версий больше 5.0, переименовывать файлы с письмами в порядке очередности не требуется - Outlook сам все соберет, как было.
#cid51209
Ответить
#cid51156, dmitry tarakanov
Спасибо, добавил.
Об этом уже написано выше. Как минимум Outlook Express и TheBat! действительно умеют собирать такие письма.
Алексей
#cid61906
Ответить
У меня не было сообщений .eml, только .msg из Outlook, мне помог совет отсюда:
http://www.potolook.ru/blog/p,158/
Цитата:
Пришло 2 почтовых сообщения со вложенными файлами: file_name.jpg [1_2].dat и file_name.jpg [2_2].dat.
Зашел через текстовый редактор WordPad (в файл 1_2) увидел, что оно создано в Outlook Express, переименовал расширение в *.eml - и файл прекрасно открылся в Outlook Express как почтовое сообщение со вложенным файлом *.jpg. Только картинки было ровно половина. Открыл оба файла в текстовом редакторе, тупо выделил текст во втором и скопировал его в конец первого. Сохранил. Опять открыл. Вложенный файл был целый и невредимый.
Пояснение от себя:
то есть у меня были только .dat, их объединил ничего не удаляя в текстовом редакторе (по порядку) и сохранил с расширением .eml, открыл в Outlook Express, вложения все на месте. Думаю, если нет Outlook Express, должен открыть Windows Mail (не проверял).
#cid61930
Ответить
#cid61906, Алексей
".eml" — это конечное расширение, для итогового (собранного из частей) письма. Отдельные части, как правило, приходят без имён. Но почтовый клиент не может отобразить "безымянный" файл во вложении, поэтому вынужден придумывать имя сам, иногда добавляя ничего не значащее расширение, типа ".dat" или ".msg".
Это потому, что отправляли только один файл "file_name.jpg". Письмо с тремя вложенными файлами, разбитое на пять частей, выглядело бы совсем иначе.
Это прокатит только с первой частью "битого" письма, только в ней есть почтовые заголовки.
А вторую часть вставлял с новой строки или нет? А если бы частей было 10 — тоже вручную копировал бы?
type * > all.eml
и таких вопросов не возникает.
В заметке именно это и написано. Только с учётом того, что для объединения частей файла — необязательно их открывать в текстовом редакторе.
Алексей
#cid61934
Ответить
Я просто хотел добавить, что можно объединить .dat (т.е. вложения), а не .eml (сами сообщения с вложениями). ПисАл для людей, которые имеют в распоряжении_только_вложение. Это самое главное, что хотел донести. Ну а уж как склеить, пусть каждый сам выбирает, не все с командной строкой дружат, а так у людей есть ещё один способ, более "чайниковский". Написал сюда, так как в поиске эта страница в top-10 выскакивает, а значит люди прочтут коммент, авось им легче будет. Не ождал такого "разбора" :)
#cid61946
Ответить
#cid61934, Алексей
Не не не. (правильно сделал, что написал: если возникает недопонимание — лучше всё сразу прояснить)
Речь в заметке именно про вложения. Склеивать надо только их, а не "битые" письма с частями исходного.
В заметке (в командах) была опечатка, она могла ввести в заблуждение, исправил.
Согласен. Но "чайниковский" способ чреват: немного ошибёшься со склейкой и возникнут ошибки, порой неисправимые (зависит от того, что было в исходном письме, от формата вложенных файлов).
Дык — потому и разбор, что читают. Чтобы белых пятен не было :)
Дмитрий
#cid90167
Ответить
Точнее:
type *.dat >> all.eml
Полученное открыть как обычное письмо.
#cid90170
Ответить
#cid90167, Дмитрий
Не точнее.
">>" — добавить в файл (если файл существует, данные будут добавлены в конец)
">" — записать в файл (даже если файл существует, он будет перезаписан новыми данными)
Если файл "all.eml" существует — например, со старой склейкой — то, воспользовавшись твоей командой, мы получим два склеенных письма. То есть, неформат, который откроется далеко не всеми клиентами.