Почтовые программы 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
2012.12.19 02:05:12
#cid51156

Ответить

Над отдать должное, для Виндовс так же все просто
type *.eml >> all

При этом для программы Outlook Express версий больше 5.0, переименовывать файлы с письмами в порядке очередности не требуется - Outlook сам все соберет, как было.

2012.12.19 17:15:05
#cid51209

Ответить

#cid51156, dmitry tarakanov

type *.eml >> all

Спасибо, добавил.

При этом для программы Outlook Express версий больше 5.0, переименовывать файлы с письмами в порядке очередности не требуется - Outlook сам все соберет, как было.

Об этом уже написано выше. Как минимум Outlook Express и TheBat! действительно умеют собирать такие письма.

Алексей
2013.05.13 12:44:20
#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 (не проверял).

2013.05.13 18:54:53
#cid61930

Ответить

#cid61906, Алексей

У меня не было сообщений .eml, только .msg из Outlook, мне помог совет отсюда:

".eml" — это конечное расширение, для итогового (собранного из частей) письма. Отдельные части, как правило, приходят без имён. Но почтовый клиент не может отобразить "безымянный" файл во вложении, поэтому вынужден придумывать имя сам, иногда добавляя ничего не значащее расширение, типа ".dat" или ".msg".

Пришло 2 почтовых сообщения со вложенными файлами: file_name.jpg [1_2].dat и file_name.jpg [2_2].dat.

Это потому, что отправляли только один файл "file_name.jpg". Письмо с тремя вложенными файлами, разбитое на пять частей, выглядело бы совсем иначе.

Зашел через текстовый редактор WordPad (в файл 1_2) увидел, что оно создано в Outlook Express, переименовал расширение в *.eml - и файл прекрасно открылся в Outlook Express как почтовое сообщение со вложенным файлом *.jpg. Только картинки было ровно половина.

Это прокатит только с первой частью "битого" письма, только в ней есть почтовые заголовки.

Открыл оба файла в текстовом редакторе, тупо выделил текст во втором и скопировал его в конец первого. Сохранил. Опять открыл. Вложенный файл был целый и невредимый.

А вторую часть вставлял с новой строки или нет? А если бы частей было 10 — тоже вручную копировал бы?

type * > all.eml

и таких вопросов не возникает.

то есть у меня были только .dat, их объединил ничего не удаляя в текстовом редакторе (по порядку) и сохранил с расширением .eml, открыл в Outlook Express, вложения все на месте.

В заметке именно это и написано. Только с учётом того, что для объединения частей файла — необязательно их открывать в текстовом редакторе.

Алексей
2013.05.13 19:43:26
#cid61934

Ответить

Я просто хотел добавить, что можно объединить .dat (т.е. вложения), а не .eml (сами сообщения с вложениями). ПисАл для людей, которые имеют в распоряжении_только_вложение. Это самое главное, что хотел донести. Ну а уж как склеить, пусть каждый сам выбирает, не все с командной строкой дружат, а так у людей есть ещё один способ, более "чайниковский". Написал сюда, так как в поиске эта страница в top-10 выскакивает, а значит люди прочтут коммент, авось им легче будет. Не ождал такого "разбора" :)

2013.05.13 23:55:20
#cid61946

Ответить

#cid61934, Алексей

Я просто хотел добавить, что можно объединить .dat (т.е. вложения), а не .eml (сами сообщения с вложениями). ПисАл для людей, которые имеют в распоряжении_только_вложение.

Не не не. (правильно сделал, что написал: если возникает недопонимание — лучше всё сразу прояснить)

Речь в заметке именно про вложения. Склеивать надо только их, а не "битые" письма с частями исходного.

В заметке (в командах) была опечатка, она могла ввести в заблуждение, исправил.

Это самое главное, что хотел донести. Ну а уж как склеить, пусть каждый сам выбирает, не все с командной строкой дружат, а так у людей есть ещё один способ, более "чайниковский".

Согласен. Но "чайниковский" способ чреват: немного ошибёшься со склейкой и возникнут ошибки, порой неисправимые (зависит от того, что было в исходном письме, от формата вложенных файлов).

Написал сюда, так как в поиске эта страница в top-10 выскакивает, а значит люди прочтут коммент, авось им легче будет. Не ождал такого "разбора" :)

Дык — потому и разбор, что читают. Чтобы белых пятен не было :)

Дмитрий
2015.01.19 11:56:37
#cid90167

Ответить

Точнее:
type *.dat >> all.eml
Полученное открыть как обычное письмо.

2015.01.19 20:13:06
#cid90170

Ответить

#cid90167, Дмитрий

Точнее:
type *.dat >> all.eml
Полученное открыть как обычное письмо.

Не точнее.
">>" — добавить в файл (если файл существует, данные будут добавлены в конец)
">" — записать в файл (даже если файл существует, он будет перезаписан новыми данными)

Если файл "all.eml" существует — например, со старой склейкой — то, воспользовавшись твоей командой, мы получим два склеенных письма. То есть, неформат, который откроется далеко не всеми клиентами.