Где на диске хранятся прикрепленные файлы E-Mail?

afal 19.06.2004 - 10:09 | Где на диске хранятся прикрепленные файлы электронной почты? Ведь они где-то сохранены, поскольку в автономном режиме их можно многократно сохранять в различных каталогах. Значит это все выполняется обычным копированием через буфер обмена, а где сам первоисточник? Обычный поиск положительных результатов не дает. Если они хранятся в файлах *.dbx, то как хотя бы программно (допустим в VB) получить ссылку на прикрепленный файл? Вобщем кто знает как можно добраться до файла, прикрепленного к письму и можно ли его удалить не удаляя письма? Заранее благодарен.
Delphist 1 - 20.06.2004 - 22:51 | Во-первых, какой почтовый клиент имеется ввиду? Опиши задачу подробней. . Есть протокол MAPI, большинство почтовых клиентов поддерживают его упощенный вариант Simple MAPI. Там всего десяток функций, в том числе и для прикрепленных файлов.
OF 2 - 21.06.2004 - 09:17 | Как правило (Outlook, например), они хранятся прямо в теле письма. В принципе это нормально - ведь файл то хранится в теле письма.. В базе почтового клиента хранятся письма, при сохранени на диск данные извлекаются из письма. Вот и все.. Врядли будет такой клиент, который бы хранил файлы отдельно..
* 3 - 21.06.2004 - 10:53 | To 2 - The Bat! хранит в папке Attach отдельно.
SBoyko 4 - 21.06.2004 - 14:48 | 3: Да ну? А какой бат, если не секретъ?
afal 5 - 21.06.2004 - 15:13 | То 1 Ну почтовый клиент, как я понимаю, является просто программным интерфейсом юзеря. Файлы же должны храниться так, как то предписывает файловая система. Т.е. иметь конкретный адрес на диске по которому на него можно сослаться. А задача такая: приходит письмо с прикрепленным файлом файл этот исполняемый. Его сохраняют на диске, и после этого запускают. Так вот запускаться он должен только один раз. Сделать это для самого файла не сложно, но у него остается копия, а вернее даже оригинал, который и есть этот самый прикрепленный файл, ведь оттуда можно сохранять на диске файл не ограниченное количество раз. Следовательно, нужно дать команду в этом запущенном на исполнение файле найти прикрепленный файл и либо отредактировать его как нужно, либо, что еще проще уничтожить. А что бы это сделать, нужно точно указать его место положение на диске.То 3 А ты попробуй через Поиск найти конкретный прикрепленный файл и скорее всего окажется, что папка Attach это атрибут The Bat.
Сергей 6 - 21.06.2004 - 15:23 | А в чем смысл задачи?
afal 7 - 21.06.2004 - 15:54 | Смысл в том, что бы прикрепленный файл запускался только один раз и больше к нему нельзя было бы вернуться.
OF 8 - 21.06.2004 - 16:42 | Хехехе.. Ну в плане защиты это - совершенно беспонтовая вещь и предназначена для самых запущенных чайников. Если ты просто при запуске программы выдашь на экран сообщение типа "После использования - удалить", то это будет выглядеть не так смешно, как попытка удалить из почтового клиента (причем, неизвестно какого) енто письмо программно. Так что... Пиши свой клиент :) Повторюсь - Outlook (самый распространенный клиент) файлы не держит в отдельных файлах/папках. Вся почта хранится в одном архиве, а файл является такой же частью письма, что и текст (если, конечно, слова MIME, BASE64 и т.п. что-то для Вас значат)
afal 9 - 21.06.2004 - 22:59 | А защита и должна быть рассчитана на самых запущенных чайников. Защищаться от программистов не имеет смысла. И работать до взлома, защита должна в пределах месяца. Если эти условия выполняются, больше ни чего и не нужно. За это время, повысится интеллектуальный уровень чайников и есть возможность сделать что-то лучше чем то, что взломали чайники. Конечно разбогатеть на этом деле не удастся, но полбулки и полбанки заработать можно. А что бы разбогатеть, нужно воровать. Тем кто работает, деньги не платят ни кто и ни где. Писать своего клиента ни к чему. Мне он не нужен и так все известно, а тот, кому отправляется файл им не воспользуется, а вот написать, что-то вроде своего MIME, только в очень упрощенном виде (поскольку о файле, который я высылаю мне известно все) я и хотел, но как это сделать практически видимо ни кто не знает. Повторюсь и я - через интерфейс конкретного клиента мы можем видеть все так, как было задумано его разработчиками. И тексты писем в разных папках, и прикрепленные к ним файлы, толи в отдельной папке, толи вместе с письмом, но на самом деле каждый файл имеет свое место на диске, текст письма - свое, а файл xy.jpg – свое. И когда Вы удаляете это письмо из папки «Удаленные», то удаляется и файл, прикрепленный к нему, хотя если бы такая цель была у разработчиков Outlookа, то удаляли бы отдельно или письмо или файл, т.е. механизм такой существует вот его реализацию я и хотел услышать. Но наверное еще рано.
Delphist 10 - 21.06.2004 - 23:19 | Не обижайся на мое ИМХО, но на реализацию этого механизма ты потратишь БОЛЬШЕ времени, чем он принесет ПОЛЬЗЫ. Придумай что-то другое. Про одноразовый запуск - пиши ключ в реестр. При запуске программа проверяет его наличие, если есть - то мы уже запускались. Если нет - работаем нормально и при выходе создаем этот ключ в реестре.
Delphist 11 - 21.06.2004 - 23:20 | И неважно тогда, как файл попал на компьютер - по электронке, через FTP, или вообще на дискете принесли.
afal 12 - 23.06.2004 - 10:16 | Большое спасибо! Действительно просто и, даже можно сказать, гениально. Как я до этого не додумался. Зациклился в одном направлении.
SBoyko 13 - 23.06.2004 - 10:38 | >>Про одноразовый запуск - пиши ключ в реестр. При запуске программа >>проверяет его наличие, если есть - то мы уже запускались. Если нет - >>работаем нормально и при выходе создаем этот ключ в реестре. Тож не очень конечно вариант. regmon убирает эту "защиту" влегкую. Но по сравнению с удаленим письма - это действительно выглядит гениально :)
afal 14 - 23.06.2004 - 10:40 | (11)Единственное, что это только реализация однократного запуска приложения на одном компе. А вопрос многократного тиражирования запускаемого файла и запуск его на разных компах не решается. Там-то, как раз, записи в реестре и не будет. Поэтому, наверное, все-таки придется искать реализацию этого механизма (10).
halted 15 - 23.06.2004 - 15:09 | Напоминает будильник, который звонит только один раз ;-)
Delphist 16 - 23.06.2004 - 16:20 | Так ты еще хочешь самоуничтожение программы после запуска? Тоже просто: изменение PE-образа. Подробнее в разделе "статьи" на www.rsdn.ru. Но последняя попа притаилась тут: если юзер сделает копию еще незапущенного файла. И даже привязка к почтовому ящику и аттачменту не поможет. Делаем обыкновенный редирект входящей почты с копированием. Письмо раздвояется с аттачментом вместе. Процесс повторить до получения желаемого кол-ва копий. Учти: ты же просил НЕСЛОЖНУЮ защиту для чайников-юзверей.
Delphist 17 - 23.06.2004 - 16:21 | А от профессионала и аппаратный ключ не поможет. Вон, 1С тоже "HASP'ом" защитили - и толку?
afal 18 - 23.06.2004 - 23:13 | Нет, самоуничтожение не нужно. Этот вопрос решается проще – однократным запуском. Зачем ее уничтожать, если она все равно больше не запустится? И ты прав, если сделать копию еще не запущенного файла, то тут уж ни чего не поделаешь. Вот именно поэтому и хотелось бы выйти на аттачмент, поскольку пока он существует копию как раз и может сделать только чайник-юзверь - по незнанию, а вообще она не нужна, т.к. из прикрепленного файла можно получить копий, сколько пожелаешь. А поскольку прикрепленный файл может быть и базой данных, то к нему можно бы было подконъектиться через ODBC и, даже не удаляя его сделать все, что бы копии больше не работали. Но с другой стороны ODBC работает под операционной системой, а доступа к аттачменту под ОС нет. А сложность защиты тоже ведь относительна. Пока мы не знаем механизма ее реализации, она кажется сложной, а когда узнаем, может показаться простой. Может средствами С++ это сделать вообще не возможно, а на asme без особых проблем. Вот и хотелось услышать мнение спецов, работающих на уровне файловой системы, как на диске найти файл с определенными признаками. Ведь почтовый клиент его находит и не потому, что он «перемешан» с текстом письма, а потому, что он имеет признак отношения именно к этому тексту. Храниться они должны порознь в разных адресных пространствах.
* 19 - 24.06.2004 - 01:32 | То 3, 4 - посмотрел, у меня в папке Attach те файлы, которые я получал прикрепленными в 2001-2002 годах, завалялись старые архивы, какой стоял тогда TheBat! не помню, может быть 1.36 или около того.
Delphist 20 - 24.06.2004 - 01:57 | Так уж случилось, что месяца 2 назад я весьма плотно пообщался с Аутлуком Экспрессовичем на программистском уровне. Впечатления крайне паршивые. Все письма одной папки хранятся в спец файле - условно говоря, база данных из BLOB размером 512 байт. Если эта папка в настоящий момент открыта в Аутлук Экспрессе, то файл с письмами блокируется (что логично). Формат базы закрытый, и реверсинг выполнен лишь частично. Что-то изменять в этой базе достаточно геморно, т.к. нет гарантии, что Аутлук Экспрессович поймет измененный файл при следующем старте. Есть COM-интерфейс для этого дела, но он тоже недокументирован. Я пробовал ставить COM hooks, но кроме VTABLE нескольких интерфейсов ничего толкового не выцепил. Куча методов, количество параметров ясно, но что они значат - загадка. Во многих VTABLE зияют "нулевые" дыры. Если предположить, что все проблемы с форматом базы решены, то: Сам аттачмент лежит в теле письма, пиcьмо разбито на секции (MIME/Multipart), тут уже проблем нет.
afal 21 - 24.06.2004 - 22:49 | А где можно почитать об этом? Если не сложно кинь URL-ки.
Delphist 22 - 25.06.2004 - 01:50 | Тут должны быть тербования на основе RFC-документов. Подробнее не знаю - не было еще такой надобности. Полазай на www.rfc-editor.org Еще может помочь Indy, там класс есть для работы с сообщениями, называется TidMesssage, если память не изменяет.
afal 23 - 25.06.2004 - 18:24 | Спасибо!

>>