|
|
|
| подскажите, пожалуйста, как обработать интернет заголовки сообщений outlook, цель- выдернуть несколько строк из заголовка для формирования некого списка | |
|
| |
|
|
|
| Что понимаете под интернет заголовком?
Заголовок письма (Subject)? или служебные поля типа X-mailer?
Если outlook полный, то
http://hiprog.com/index.php?option=com_content&task=view&id=251661546 | |
|
| |
|
|
|
| спасибо за ответ,
да, интересует служубная информация, т,к. спамеры часто подставляют реальный ip, но xMail хранит релеи, в русской версии outlook 2007 в свойствах сообщения это называется "Заголовки интернета". Сисадмин просит прогу, извлекающую ip адреса из этого окна. В msdn я тоже нашел sender, а вот xMail поля-пока нет. Сижу читаю CDO ... | |
|
| |
|
|
|
| Думаю что CDO вам не поможет, оно тут как бы не при чем.
Не уверен за xMail
Вообще весь путь доствки храниться в полях Received, таких полей может быть несколько, но вас (по идее) должно интересовать последнее, т.е. ip той машины с которой соединялись с вашим почтовым сервером
Соджержимое поля примерно такое:
Received: from [62.XXX.XXX.XXX (port=2394 helo=st.xxxxx.ru)
by mx66.mail.ru with esmtp
id 1OGrNO-0009FK-00
for osmor@mail.ru; Tue, 25 May 2010 14:28:46 +0400
вот здесь видно, что с сервером mx66.mail.ru (это конечный сервер), соединилась машина c IP=62.XXX.XXX.XXX
т.е. если этот ip внести в блеклист, то она больше соединяться не будет.
У меня в клиенте (Lotus notes), есть кнопка (мною написанная). Пользователь выделяет письма которые он считает спамом и нажимает эту кнопку.
Для каждого из отмеченных писем создается письмо в заголовке которого написано "<spam>" + заголовок письма.
А в тело включены все поля Received , ну и тело самого спам-письма (для контроля что это действительно спам). И все эти созданные письма отправляются в специальный почтовый ящик, а оригиналы удаляются из ящика пользователя.
В почтовом ящике куда все это сваливается я посматираю это Г... и то что действительно спам оставляю, а что не спам (всякие рассылки и прочее, на что пользователь подписался и забыл) удаляю. Если этого не делать, то блокируются публичные сервера. Кроме того в этой базе есть еще агент, который раз в день обрабатывает оставшиеся письма письма, извлекает ip из тела письма и формирует письмо для меня со списком IP которые названы спамерскими. я эти ip добавляю в блеклист на сервере.
Можно сделать тоже самое написав что-то подобное на VBA в самом OUTLOOK ну или обрабатывать ящик из access(ссылку я давал).
IMHO, очень эффективнй мерой борьбы со спамом является включение проверки MX записи соединяющейся машины в обратной зане DNS, это не дает соединяться машинам которые на прописаны в DNS как почтовые сервера. т.е. обычные затрояненые клиентские машины сразу отсекаются. Правда спамеры создают фантомные DNS, но это уже другая история. | |
|
| |
|
|
|
| я спросил сисадмина по поводу контроля MX записей,- "т.к. компания работает на клиента, то мы не можем включить эту опцию, т.к. много мелких клиентов имеют свои почтовые сервера и не заботятся о соответствии своих настроек с параметрами сервера провайдера." Но, это так, к слову ...
Я понял, что основная информация хранится в полях Received, но что-то никак не нашел, собственно как получить эти поля. Прилинковывание таблицы ничего не дает. Эти поля лежат где-то в свойствах сообщения. С ViewContol тоже ничего не получилось. Видимо, я чего-то не догоняю. outlook 2007 вообще не смог обработать Ваш пример, т.к. свойства "Folder" у Control почему-то отсутствует ... Вроде все ссылки указал даже поперебирал дополнительные. Потытался зацепиться из Visual Studio 2008, но видно это мне "по зубам" :-(. Вообще не могу оттуда получить сам объект outlook, хотя необходимые refferences вроде бы указал. Вобщем, что-то неправильно я делаю. Нужен совет - инструкция ... :-) | |
|
| |
|
|
|
| попробуйте все это написать внутри самого Outlook
Я сейчас особенно помочь не смогу, нет у меня outlook'a
А можно нескромный вопрос, какой у вас почтовик? | |
|
| |
|
|
|
|
| чего не знаю, того не знаю | |
|
| |
|
|
|
| ок, большое спасибо за поддержку ... :-) | |
|
| |
|
|
|
| Олег,
я помучался и нашел вот такой способ получения интернет заголовков из сообщения
str = OL_ItemMail.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E")
|
т.е. все содержимое заголовка кладется в переменную и далее идет обработка строки по "ключевым" словам. К сожалению, как получать отдельные поля из заголовка, чтобы не обрабатывать саму строку, я так и не нашел. Большое спасибо вам за наводящие мысли, это ине помогло ... | |
|
| |