Показать полную графическую версию : Проверка достоверности адреса исходящего письма в скрипте MS Outlook
Привет чесной компании!
Вообще - то меня недавно жисть заставила заняться MS Outlook (у меня основная специализация - VisualFox), но понадобился модуль приема-отправки почты через Инет, из под Fox_а, и использование MS Outlook выглядит предпочтительно. Хотя лично мне он не сильно нравится и это ещё мягко сказано (отправленные письма доставляются в папку "Исходящие", а не "Отправленные"; при работе с почтой нужно, чтобы MS Outlook был открыт и.т.д.).
На данный момент модуль программы приема - отправки, по крайней мере в тестовом режиме работает (используется VBA), но возникла проблема проверки достоверности адреса ИСХОДЯЩИХ писем (это вроде бы должно быть ДО выполнения метода ....Send()?). Попытки поиска подходящих методов и событий Объектной модели MS Outlook в Инете ничего не дала, хотя копал долго. В Help_е русского Outlook, стоящего у меня - нет ничего (это прерогатива VBA). Help VBA под Outlook_ом - на аглицком ну и как сформулировать строку запроса?. Нашел и скачал отдельный русифицированный Help VBA (версия. 1.0.1.0, 1,65Мб) -> ни черта по объектам, методам и событиям для скриптов для Объектной модели MS Outlook. Единственный сайт на котором можно было кое-что найти по Объектной модели на русском (с контекстным поиском) - <<http://msdn.microsoft.com/ru-ru/library/ms268893.aspx>> - уже почти неделю не работает. Короче, пока - тупик. А начальство - то жаждет результата.
В общем - может ли кто - нибудь подсказать, какие методы или свойства VBA для Объектной модели надоть для проверки достоверности адреса исходящего письма использовать и в каком месте скрипта?
Было бы также неплохо получить ссылку на приличный русский справочник по описанию объектов, методов и событий для скриптов под VBA Объектной модели MS Outlook (обязательно с поиском!). Буду очень благодарен.
Е. Шапиро
Вообще - то меня недавно жисть заставила заняться MS Outlook (у меня основная специализация - VisualFox), но понадобился модуль приема-отправки почты через Инет, из под Fox_а, и использование MS Outlook выглядит предпочтительно. »
Возможен и иной путь. Поиск по разделу Программирование и автоматизация действий (http://forum.oszone.net/forum-101.html) по словосочетанию CDO.Message (http://forum.oszone.net/search.php?query="CDO.Message"&titleonly=0&replyless=0&showposts=0&forumchoice%5B%5D=101&childforums=1).
возникла проблема проверки достоверности адреса… »
Что Вы под этим понимаете?
Нужен метод Объектной модели MS Outlook , если конечно такой метод вааще есть, который производил бы попытку доступа по указанному адресу исходящей почты, без вылета в состояние ошибки. В каком виде будет ответ (.T.,.F.,True.....), ясное дело не важно, лишь бы можно было программно считать ответ. В принципе можно было бы сделать "методом полученя по морде" - обработкой ошибки после ...Send(), но программа при отправке на заведомо несуществующий адрес выдает не ошибку, а отпраляет сообщение ко мне на почту, что я не прав. А свойство метода ....Send() всегда выдает <<.T.>> , ведь он чесно отправил письмо в папку "Исходящие".
По поводу "CDO.Message" - пока пытаюсь подогнать под себя готовые решения с объектом MAPI - они и выглядят попроще и примеров побольше (по крайней мере под Fox_ом) . Ежели не выгорит - буду копать и в "CDO.Message".
Е. Шапиро
Delirium
19-09-2011, 00:53
Нужен метод Объектной модели MS Outlook , если конечно такой метод вааще есть, который производил бы попытку доступа по указанному адресу исходящей почты, без вылета в состояние ошибки. В каком виде будет ответ (.T.,.F.,True.....), ясное дело не важно, лишь бы можно было программно считать ответ »
А если попробовать сначала отправить письмо этому адресату через telnet и, в зависимости от ответа сервера, либо заносить адрес в белый список и потом не проверять, либо в черный и отклонять отправку?
Насчет Тelnet (как я понял из Инета это протокол) - не знаю. Думаю переход на него простым не получится и покопаться чтобы разобраться придется изрядно. Также, как я понял черный и белый список - это фильтры адресов в почте Outlook не прокатит однозначно, проверки достоверности адреса ИСХОДЯЩИХ писем нужна для каждого конкретного мэйла только разово - далее (как вариант) в базе Fox_а в данных на этого клиента и его мэйла проставляется (автоматом) признак, что с мэйлом все в порядке и больше мэйл на этого человека не проверяется и отправка идет без проверок. В общем абсолютный стандарт для баз данных и без возни с настройкой списков Outlook.
Кстати рассылка будет немаленькой: на 120 - 150 мэйлов за раз (это не спам, а данные о налогах работников за месяц). Заодно придется наверное установить задержки между отправками, чтобы провайдер не заблокировал, как спам (надеюсь, 15 - 20 в минуту прокатит?).
Теперь о проверке достоверности адреса ИСХОДЯЩИХ писем - ежели таких объектов,методов,свойств в Outlook все-таки нет, может кто-нибудь подскажет, какие установки Outlook нужно изменить, чтобы при попытке программно отправить письмо по несуществующему адресу выходило сообщение об ошибке, а не отправлялось сообщение на мой адрес?. Или хотя-бы, как отключить эти милые сообщансы на мой мэйл.
Может есть вариант использования Win API для проверки исходящего адреса (очень жевательно бэсплатных)?.
Е. Шапиро
Теперь о проверке достоверности адреса ИСХОДЯЩИХ писем - ежели таких объектов,методов,свойств в Outlook все-таки нет, может кто-нибудь подскажет, какие установки Outlook нужно изменить, чтобы при попытке программно отправить письмо по несуществующему адресу выходило сообщение об ошибке, а не отправлялось сообщение на мой адрес?. Или хотя-бы, как отключить эти милые сообщансы на мой мэйл. »
Jean55, Вы никак не можете убедиться в существовании, истинности и реальности почтового ящика без отправки на него письма. И Outlook и WinAPI тут вовсе не при чём. Ответное письмо Вам может отправлять почтовый сервер, который является оконечным в разорванной цепочке при доставке письма. Если он не находит почтового ящика, на который Вы шлёте — он может ответить Вам письмом. А может — и нет (функционал может быть отключён — за это мы должны «благодарить» спамеров).
Delirium
20-09-2011, 00:56
Насчет Тelnet (как я понял из Инета это протокол) - не знаю. Думаю переход на него простым не получится и покопаться чтобы разобраться придется изрядно »
суть работы telnet:
telnet mailserver 25 -адрес почтового сервера, куда отправляем письмо. 25 - номер SMTP порта. Может быть также 8025.
выдается приветствие. Здороваемся командой HELO или EHLO.
Далее mail from:mail@mail.com - это от кого будет письмо
говорит sender ok.
далее самое главное-
rcpt to: rcpt@mail.com - это КОМУ письмо
и вот если тут он скажет recipient OK, это значит, что адресат существует.
Также, как я понял черный и белый список - это фильтры адресов в почте Outlook не прокатит однозначно »
нет, я имел в виду как раз далее (как вариант) в базе Fox_а в данных на этого клиента и его мэйла проставляется (автоматом) признак, что с мэйлом все в порядке »
и вот если тут он скажет recipient OK, это значит, что адресат существует. »
Насколько я понимаю, это говорит лишь о том, что адрес был корректно воспринят SMTP сервером-отправителем.
Я попробовал отправить на существующий на том же сервере адрес, на существующий в ином домене адрес, на несуществующий адрес (всё — посредством telnet, Yandex ---> Yandex и Yandex ---> Mail.RU, авторизация EHLO).
И все варианты были восприняты успешно:
250 2.1.5 <somename@somedomain.dom> recipient ok
Естественно, на вымышленный адрес письмо не было доставлено, а пришло уведомление:
Remote-MTA: dns; mxs.mail.ru
Diagnostic-Code: smtp; 550 Message was not accepted -- invalid mailbox. Local mailbox somename…@mail.ru is unavailable: user not found
Delirium
20-09-2011, 08:29
Согласен, поторопился. Мой почтовик сразу дает отлуп с кодом 550 (Invalid mailbox). smtp.mail.ru не отправляет, пока не авторизуешься. Т.е. этот вариант отпадает.
Нарыл англоязычные решения:
1. http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-address-exists-without-sending-an-email/ (прилагается код на PHP)
2. http://my-addr.com/free-email-verification-tool/verify-email-address/reverse-email-lookup/verify_email.php
И наконец есть онлайн сервис для проверки. Можно программно распарсить результат и на его основе решать дальше:
http://verify-email.org/
Примеры ответов сервиса:
Result: Bad
Description: 550 5.1.1 User unknown
и еще один подобный сервис:
http://tools.email-checker.com/ - здесь можно загрузить кучку адресов(ОДНИМ ФАЙЛОМ) и результат выгрузить в Excel, ну а дальше уже дело техники.
Все это нашел поиском - http://www.google.ru/search?hl=ru&source=hp&biw=1600&bih=770&q=how+to+check+that+mail+address+is+exist&oq=how+to+check+that+mail+address+is+exist&aq=f&aqi=&aql=&gs_sm=e&gs_upl=53796l72535l0l72692l51l43l1l10l2l5l1063l14212l0.6.8.3.4.5.4.2l32l0
По моему я понял свою ошибку. Она как обычно в постановке вопроса, что надоть выяснить у знающих людей....
Итак : имеется задача под Fox_ом по внесению и обработке результатов работы фирмы, в которой естественно есть список сотрудников и их данных (ФИО, специальность,адрес и т.д.). Другая фирма считает ей налоги на энтих людёв и раз в месяц сбрасывает фирме на мэйл, на всех сразу. Меня попросили, используя базу сотрудников сделать модуль рассылки налогов этим сотрудникам на их личные мэйлы. Тоесть (как простейший и основной вариант) шеф раз в месяц входит в этот модуль и жмет мышом кнопку "Разослать почту " - и усе!!!. Все должно делаться из под Fox_а. Единственное, что от него можно еще потребовать - это войти в перед этим в Инет и открыть (подвесить) Outlook. Поэтому никаких онлайн -сервисов, никаких выгрузок и обработок в Exel. Все должно быть на полном автомате. Далее - только (по необходимости)"навязчивый сервис" - вывод на экран или печать списка тех у кого не заданы мейлы (стандартно и без промблем) и СПИСКА ТЕХ У КОГО ЗАДАНЫ НЕСУЩЕСТВУЮЩИЕ мэйлы и вот в этом проблема. 99% за то, что в течение года такие мэйлы будут и это означает скандальчики, поиск ошибок и виноватых. И именно поэтому жевательно отследить эти ошибки при первом прогоне каждого мэйла.
Теперь программные вопросы:
1. Как я уже спрашивал и это важно - "какие установки Outlook нужно изменить, чтобы при попытке
программно отправить письмо по несуществующему адресу выходило сообщение об ошибке, а не
отправлялось сообщение на мой адрес?. Или хотя-бы, как отключить эти милые сообщансы на мой мэйл."
2. Объект ReportItem (см. <<http://www.askit.ru/custom/vba_office/m13/13_06_outlook_items_objects.htm>>)
создается автоматом при ошибках входа и выхода писем или только входа?. И ежели он работает и на
исходящей почте то дайте, пожалуйста пример его использования (я их просто не нашел). С его
использованием тоже возможны проблемы, т.к. вначале проиходит отправка почты в папку "Исходящие", и
только там может возникнуть ошибка при отправке. И как ее дождаться под Fox_ом - пока не знаю.
3. Использование иных языков из под Fox_а (PHP, С, Delfi) как я понимаю возможно, но все-равно нужны
знания и навыки, а также переделка и интерпретация под Fox. А это дополнительные (и немалые)
проблемы. Поэтому крайне желательно использование VBA c Объектной моделью Outlook - там все проще и
более-менее интуитивно понятно, по крайней мере для меня.
P.S. Кстати, лазя по указанным Вами сайтам нашел интересную .ехе утилитку Email Tester - проверяющую
заданный адрес, с использованием командной строки, но, увы - результат проверки отсылается на
проверяемый адрес. А может кто- нибудь знает чевой-то подобное с ответом по месту запуска?
Все равно всем спасибо за советы.
Е.Шапиро
1. Как я уже спрашивал и это важно - "какие установки Outlook нужно изменить, чтобы при попытке программно отправить письмо по несуществующему адресу выходило сообщение об ошибке, »
Нет таких, и быть не может, ибо никакая почтовая программа не в состоянии определить существование почтового адреса без организации внутри себя почтового сервера и его контакта с почтовым сервером, обслуживающем домен, куда отправляется письмо.
…а не отправлялось сообщение на мой адрес?. Или хотя-бы, как отключить эти милые сообщансы на мой мэйл." »
Пишите в комитет по стандартизации, составляющий RFC, чтобы они включили в него Ваше требование о запрете уведомления об отсутствии на почтовом сервере соответствующей записи.
Вы можете использовать блокирование по спискам серверов и ключевым словам в адресе/теме/содержимом письма. Т.е., обычная фильтрация. Но суть в том, что тогда Вы не узнаете, что Ваше письмо на данный почтовый адрес не дошло.
Вам бы следовало попробовать то, что предлагал сделать выше Delirium, и в #7, и в #9 — Вам многое стало бы понятней.
Ребята, извините ну не могу да и буду я ипользовать программы на РНР, С .... - это обязательная инсталляция программ, и их совмесное использование, много копания, чтобы понять что и как, (ведь я их, не знаю), обеспечение отсутствия конфликтов с Фоксом. Ну да что я Вам рассказываю - сами представляете, что значить хоть чуть-чуть освоить новый язык. Простым дёром чужих примеров, увы не обойтись. Насчет Telnet - покопал пару часов в Инете, ну кое-что конечно понял, но в результате вопросов больше, чем ответов - то есть опять же копать - спрашивать - копать. Хотя конечно интересно, чесное слово - это насчет #7, и наверное #8 (а не #9 в предыдущем письме). Без всяких обид, правда.
Повторюсь: лично мне решение надо искать под Объектной моделью MS Outlook и VBA - он более-менее прост, и как известно инсталлируется автоматом, при установке MS Office. Да и все они (VFP, Outlook, VBA) - продукты одной фирмы, т.е. меньше конфликтов.
А решение, похоже есть и довольно простое - отследить уход письма из папки "Исходящие", затем проверить
во "Входящих" появление служебного письма о неверном адресе (надеюсь, конечно, что удаление из
"Исходящих", идет только после получения по SMTP подтверждения о доставке письма получателю, т.е. появления письма в папке "Входящие") , а затем его (служебное письмо) чесно грохнуть, сделав в Фоксе запись о неработоспособности этого мэйла.
Поэтому, если можно подскажите, как пишутся строки методов:
- "удалить письмо" (по моему - ????????.Remove.????????) -> кое что накопал, но все равно не все ясно
- "выделить месяц" и "выделить год" (из даты письма) это нужно для поиска письма в другом месте программы->
вааще ничо не нашел (а по логике должны быть - к примеру в Фоксе это часто используемые функции)
- "найти письмо" (по моему - ????????.Find.????????) -> кое что накопал, но все равно не все ясно
Т.е. опять та же самая промблема - отсуствие толкового сайта, где Объектная модель нормально расписана желательно по русски (естественно с функцией поиска). Обычное лазанье по Инету - это собирание информации по крохам и как обычно, проблемы с составлением строки поиска.
Так что еще раз прошу прощения и если можно подскажите по этим методам или с ссылкой на толковый сайт.
Е. Шапиро
Delirium
22-09-2011, 02:35
Jean55, ты столкнешься с одной проблемой, причем сразу - да, по RFC почтовые серверы ОБЯЗАНЫ отправлять NDR (non-delivery report), если адресата не существует, но в реальности часто это отключают. К примеру, у меня отключено, т.к. 98% спама (а это около 350 000 писем/мес) не имеет верного SMTP адреса, и рассылать тонны сообщений о недоставке - лишний трафик и нагрузка. Да, это неверно, а что делать.
Именно поэтому ты можешь и не получить ответа о том, что адресат не существует.
Я не могу понять, чем тебе не понравился совет в #9. Смотри:
Ты ОДИН раз формируешь список своих адресатов. Загружаешь его на сайт проверки адресов. Получаешь результат, и потом в фоксе делаешь как хочешь - или удаляешь неработающий мейл, или ставишь пометку, что он рабочий. И ВСЕ. После этого перед отправкой достаточно будет проверить флаг напротив ящика и предпринять дальнейшие действия.
Все, что мы писали в #7 и #8 - есть по сути, ручная обработка того, что я написал в #9.
Не бейся в стену с одним решением, рассмотри и другие варианты.
Jean55, я не понял при чём тут PHP или С. Я предлагал Вам попробовать отправить несколько писем посредством telnet, «ручками» набирая команды протокола SMTP, дабы Вы получили некоторое представление о том, из чего состоит и как именно работает протокол SMTP, не более.
Реализуйте рассылку через CDO (http://www.askit.ru/custom/vba_office/m13/13_08_cdo_vba.htm) непосредственно из-под Visual FoxPro — головной боли втрое меньше будет, изучать лишнего ничего не потребуется, кроме объектной модели самого CDO, где многие интерфейсы похожи на аналогичные из Microsoft Outlook. Можно даже непосредственно работать с протоколами через сокеты. Впрочем, решать Вам.
Т.е. опять та же самая промблема - отсуствие толкового сайта, где Объектная модель нормально расписана желательно по русски (естественно с функцией поиска). Обычное лазанье по Инету - это собирание информации по крохам и как обычно, проблемы с составлением строки поиска. »
Что тут скажешь?! Разве что крылатую фразу: «Говорила мама — учи английский»:
Microsoft Outlook 2003: Outlook Object Model (http://msdn.microsoft.com/en-us/library/aa221870(v=office.11).aspx);
Microsoft Outlook 2007: Outlook Object Model Reference (http://msdn.microsoft.com/en-us/library/bb208225(v=office.12).aspx)
Я сомневаюсь, чтобы кто-нибудь переводил полностью всю документацию: объектная модель Microsoft Outlook (http://www.google.ru/search?hl=ru&q=%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%B0%D1%8F+%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C+Micros oft+Outlook).
PHP или Си - потому что команды под telnet написаны на PHP, а Си - просто так за компанию, я просто видел и примеры написания скриптов для OUTLOOK и на Си. А нужна ли инсталляция PHP для telnet - это тот вопрос, который я не стал задавать, да похоже и не надо уже и так ясно.
ты столкнешься с одной проблемой, причем сразу - да, по RFC почтовые серверы ОБЯЗАНЫ отправлять NDR (non-delivery report), если адресата не существует, но в реальности часто это отключают. К примеру, у меня отключено, т.к. 98% спама (а это около 350 000 писем/мес) не имеет верного SMTP адреса, и рассылать тонны сообщений о недоставке - лишний трафик и нагрузка. Да, это неверно, а что делать »
Тут уж я чевой-то не понял. Наверно не правильно объяснил.Попробую ишшо раз.
Фокс - это чистый файл-сервер и модуль отправки будет только на одном компе (у начхальника - остальные обойдутся), т.е. входящий мэйл всегда только один и на него же приходит аттачем почты общее письмо, которое надо поделить и отправить дальше.
Теперь кусок из -под Фокса:
******************************************************************
**** MailItem — представляет собой сообщение электронной почты. ****
LOCAL loMailItem As OUTLOOK.MailItem
objMail = loOutlook.CreateItem(olMailItem) && новое письмо из под Outlook
objMail.To = "bla_bla_bla@mail.ru" && адрес куды -> заранее неверный
* и
* т.
* д.
objMail.Send && посылаю письмо подальше
******************************************************************
Письмо попадает в "Исходящие", а затем OUTLOOK сам пытается спихнуть его дальше, без моего участия.
Потом, если письмо прошло, то запись в Исходящих" ликвидируется, а в "Отправленных" появляется - все это и так, понятно. А вот ежели адреса мэйла не существует, то запись в Исходящих" также ликвидируется, а появляется служебное письмо в МОЕЙ почте "Входящие", что нэт такой партии. Текст письма формирует OUTLOOK и мой адрес наверняка берется из него же, родимого (при формировании данных исходящего письма мэйл моей почты не используется).
Я тут экспериментировал со всяческими настойками OUTLOOK, при неверном адресе мэйла получателя, пытаясь отправить почту не в Исходящие", а в "Отправленные" - это позволило бы получить сообщанс об ошибке прямо в Фокс, обработать который было бы делом техники, но увы, похоже дело дохлое. А вот служебных писем об неверном адресе мэйла получателя на мою почту "Входящие получил по полной программе, что задрался удалять.
Кстати, вопрос: через сколько времени, после удаления письма из Исходящих" может появиться служебное сообщение в моей почте "Входящие"?. По логике, вроде бы удаление из Исходящих" дожно происходить именно после окончания загрузки служебного сообщения в мою почту "Входящие"?. А если нет, то 10-20 сек достатосно?
Ты ОДИН раз формируешь список своих адресатов. Загружаешь его на сайт проверки адресов. Получаешь результат, и потом в фоксе делаешь как хочешь - или удаляешь неработающий мейл, или ставишь пометку, что он рабочий. И ВСЕ. После этого перед отправкой достаточно будет проверить флаг напротив ящика и предпринять дальнейшие действия. »
Увы, список данных сотрудников (а в нем адрес мэйла сотрудника - один из пунктов) заполняется и редактируется не мной, а пользователяли с любого компа локалки, на котором стоит задача и никто меня ждать не захочет, пока я там что-то проверю и загружу. Таковы правила игры при работе в СУБД
За ссылки - спасибо русская MSDN у меня была, но посление две недели не работала, выдавала ошибку (не ты ли ее включил? - шютка). А вот аглицких - не было. И не такой уж большой промблем с их чтением (к примеру, я же не идиот работать с переведенным Фоксом), хотя разобраться в деталях, при чтении документации бывает сложновато, просто по русски это получается быстрее.
Е.Шапиро
Delirium
23-09-2011, 01:12
а появляется служебное письмо в МОЕЙ почте "Входящие", что нэт такой партии. Текст письма формирует OUTLOOK и мой адрес наверняка берется из него же, родимого »
Какой почтовый сервер у тебя установлен? ПРосто так Outlook не узнает, что надо отсылать NDR тебе, это делает почтовый сервер, в котором твой адрес прописан адимнистратором почты. Это либо у тебя, либо у провайдера, в зависимости от того, где находится сервер.
Кстати, вопрос: через сколько времени, после удаления письма из Исходящих" может появиться служебное сообщение в моей почте "Входящие"?. По логике, вроде бы удаление из Исходящих" дожно происходить именно после окончания загрузки служебного сообщения в мою почту "Входящие"?. А если нет, то 10-20 сек достатосно? »
Да оно может ВООБЩЕ не появиться, я же тебе про это и толкую. А может и появиться, но время доставки NDR может варьироваться от пары секунд до неопределенности, все зависит от настроек почтового сервера-принимателя, его загруженного, его стабильности. Полагаться на это нельзя.
вы, список данных сотрудников (а в нем адрес мэйла сотрудника - один из пунктов) заполняется и редактируется не мной, а пользователяли с любого компа локалки »
Как часто изменяется список сотрудников? Бешеная текучка?
И ты пытаешься сделать операцию на клиенте, хотя это в корне неверно. Проверка существования адреса, отчеты о недоставке и прочее - это все таки больше серверные вопросы, и перекладывать их на клиента = создавать костыль.
Вообще, конечно, основная проблема в том, что для работы используется устаревший язык программирования. Да, фокс гибок и удобен, прост в использовании(сам много лет писал на нем), но для современных технологий надо что то более приближенное к реальности.
Да нет, дело тут не в языке. Просто коллега Jean55 пока плохо представляет себе всю эту механику изнутри, потому больше шаманством занимается.
Я бы вовсе отказался от Outlook и работал бы прямо через CDO. Сама библиотека «Collaboration Data Objects 1.2.1» бесплатна, доступна и легко распространяется посредством групповой политики. Проверку существования почтового адреса можно прикрутить либо непосредственно на этапе вводе адреса (если есть оттуда доступ к сети), либо перед рассылкой. В первом случае для этого будет вполне достаточно заполнить по указанному выше адресу http://verify-email.org/ и отослать форму в том же IE, а затем распарсить полученный результат (или просто проверить наличие «Result: Ok»/«Result: Bad»). Для второго — аналогично по второму вышеприведённому адресу — http://tools.email-checker.com/.
2Delirium: я тут ещё раз посмотрел на http://verify-email.org/ — для любого адреса на ***@mail.ru даёт результат, согласно ответа сервера — «Result: Ok». Выходит, что некоторые и так борются?!
Delirium
23-09-2011, 06:01
Выходит, что некоторые и так борются?! »
Угу, есть и такое дело :)
Да, на указанных адресах есть утилита Email Verifier - http://www.email-unlimited.com/email_verifier.html
Там есть очень интересная опция:
It allows also to import email addresses from external sources using ODBC/OLEDB: MS SQL, Access, Oracle, Dbase, Paradox, and Foxpro.
ну ничего не мешает прикрутить ее к своим программам и АВТОМАТИЧЕСКИ обновлять данные по адресам через планировщик.
И еще там есть Email Verifying Script - тоже очень полезная в твоем случае вещь.
Да понял я люди понял, точнее начинаю понимать - недаром же почти месяц стенку лбом прошибаю.
Сначала, чтобы закрыть тему проверки через "Исходящие" и "Отправленные" - в свойствах письма есть и "From:" и "To:", так что примут его за спам - не знаю. На моем домашнем компе - проходит без промблем. Кстати чем у Вас отсекается спам?. Было бы интересно поэкспериментировать со служебным сообщением.
Насчет почтового сервера: у меня, так он то как раз пропускает, а вок какой установлен у клиента - пока просто не знаю, не хоцца показываться без хоть какого - либо результата. Кстати , это тоже важно (почтовый сервер), но отложу на потом. А все остальные возражения и разъяснения вполне логичны и похоже понятны.
Как часто изменяется список сотрудников? Бешеная текучка? »
Понятия не имею, я у них работник приходящий. Мог бы и отказаться от работы с почтой, но это интересно лично мне.
Насчет Фокса: для файл-серверных систем малых предприятий еще очень даже... (имел возможность сравнить с наработками на других языках, кстати довольно свежими), мне уже не 30 да и коней на переправе не меняют.
В общем, подожду, что там получится с Sedna, а там видно будет.
В любом случае - помощь хорошая (да! - кстати не пойму как отправить благодарности на форуме, а надо бы).
Да и с CDO думаю теперь можно попробовать (есть примеры с ним для Фокса, но тогда я там мало что понял). Спасибо, думаю еще обращусь с вопросами.
Е.Шапиро
И ишшо вопрос - думаю попроще. При использовании метода Find:
loOutlook = CREATEOBJECT("outlook.application")
loMapi = loOutLook.GetNameSpace("MAPI")
loFldr = loMapi.GetDefaultFolder(6)
olFind = loFldr.Items.Find('[Subject] = "Налоги_июнь_2011"') -> заголовок входящего письма не находит, т.е.
olFind = .NULL. (письмо где-то месячной давности)
а вот поиск того же самого olFind с другой текстовой строкой
olFind = loFldr.Items.Find('[Subject] = "Delivery Status Notification (Failure)"') где строка - это заголовок
служебного сообщения об ошибке (письмо самое свежее в списке) -> находит!!!. Результат - объект.
Наименования драл копированием из свойств письма в Outlook - так что без ошибок в строке. Совершено не понятно, в чем причина?. И как с объекта выцыганить нумер письма?
А вот Email Verifier и проч. можно и нужно использовать в другом месте - на стадии записи мэйла в данные сотрудника, где запрос с использованием внешних программ вполне уместен (кстати, я эту программу находил, когда искал утилиту с проверкой мэйла из командной строки - одну нашел, но так и не понял, куды она ответ отсылает).
Е.Шапиро
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC