Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли как-то программировать Аутглюк?

266
21 января 2004 года
mhaturov
901 / / 23.10.2003
Задача такая:
Есть ряд почтовых клиентов, с помощью которых отправдяется определённый файл. Нужно, чтобы в момент отправки файла выполнялась программа его резервного копирования.
Вопросы:
Можно ли писать макросы для Outlook?
Если что, насколько сложно написать прогу-резидент, которая будет перехватывать момент отправки письма, смотреть, что к нему прикреплено и выполнять в зависимости от этого какие-либо действия? Есть ли примеры или наработки? Есть у кого идеи?
266
21 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by mhaturov
Задача такая:
Есть ряд почтовых клиентов, с помощью которых отправдяется определённый файл. Нужно, чтобы в момент отправки файла выполнялась программа его резервного копирования.
Вопросы:
Можно ли писать макросы для Outlook?
Если что, насколько сложно написать прогу-резидент, которая будет перехватывать момент отправки письма, смотреть, что к нему прикреплено и выполнять в зависимости от этого какие-либо действия? Есть ли примеры или наработки? Есть у кого идеи?


Всё, задача отпала...:{

258
21 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov

Всё, задача отпала...:{



Да, отпала?!, ну так для тех кто наткнется на этот вопрос - можно программировать Outlook. У него своя модель объектов как и у Excel, Word и можно абсолютно спокойно как писать в нем самом макросы на Visual Basic так и (через технологию COM) управлять Outlook'ом из любого другого приложения. Если вы приграммируете на VB и VBA то вам еще доступна возможность перегрузки событий объектов Ourlook (через дерективу WithEvents).

Т.е. указанная выше задача по перехвату момента отправки, а также извления и сохранения вложения решается абсолютно спокойно.

266
21 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV


Да, отпала?!, ну так для тех кто наткнется на этот вопрос - можно программировать Outlook. У него своя модель объектов как и у Excel, Word и можно абсолютно спокойно как писать в нем самом макросы на Visual Basic так и (через технологию COM) управлять Outlook'ом из любого другого приложения. Если вы приграммируете на VB и VBA то вам еще доступна возможность перегрузки событий объектов Ourlook (через дерективу WithEvents).

Т.е. указанная выше задача по перехвату момента отправки, а также извления и сохранения вложения решается абсолютно спокойно.



А как?
Т.е. в аутглюке макрос написать, как я понимаю, нельзя. Тоесть, надо писать программу - резидент, которая будет отлавливать запуск копий аутглюка, в процессе работы аутглюка отлавливать событие отправки письма и проверять, что в нём?

258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov


А как?
Т.е. в аутглюке макрос написать, как я понимаю, нельзя. Тоесть, надо писать программу - резидент, которая будет отлавливать запуск копий аутглюка, в процессе работы аутглюка отлавливать событие отправки письма и проверять, что в нём?



Неа, можно, в этом смысле он ничем не отличается от Excel и Word. Тот же VB редактор, компллятор версии 6.3 (для Office 2002). Можешь посмотреть и убедиться. Единственное отличие - нет пункта - запись макроса (в смысле запись макроса по действиям пользователя).

Просто очень часто обычно есть прога в Excel или Access и необходимо просто переслать письмо или проверить почту, то тогда конечно Outlook используют через COM автоматизацию, хотя конечно можно все сделать наоборот - Outlook будет по ходу запускать Excel и что-то в нем творить. Главное не надо думать, что если вам надо отслеживать приход письма в Outlook, то это обязательно надо в самом Outlook, нет, совершенно не обязательно, можно перегружать события и подключенных/созданных объектов (CreateObject/GetObject).
Так что при выборе где будет находится основной код программы обычно придерживаются того правила, что собственный код, находящий внутри прграммы, выполняется быстрее, чем тот же набор команд но уже выполняемый через COM.

266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV


Неа, можно, в этом смысле он ничем не отличается от Excel и Word. Тот же VB редактор, компллятор версии 6.3 (для Office 2002). Можешь посмотреть и убедиться. Единственное отличие - нет пункта - запись макроса (в смысле запись макроса по действиям пользователя).

Просто очень часто обычно есть прога в Excel или Access и необходимо просто переслать письмо или проверить почту, то тогда конечно Outlook используют через COM автоматизацию, хотя конечно можно все сделать наоборот - Outlook будет по ходу запускать Excel и что-то в нем творить. Главное не надо думать, что если вам надо отслеживать приход письма в Outlook, то это обязательно надо в самом Outlook, нет, совершенно не обязательно, можно перегружать события и подключенных/созданных объектов (CreateObject/GetObject).
Так что при выборе где будет находится основной код программы обычно придерживаются того правила, что собственный код, находящий внутри прграммы, выполняется быстрее, чем тот же набор команд но уже выполняемый через COM.


Хорошо. а как заложиться на использования альтернативных клиентов? TheBat, например, или Lotus?

258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
Да чуть не забыл, продолжая мысль о быстроте исполняемого кода через COM.

Иногда, когда нужно выполнить какой-нибудь сильно зациклинный код, разница между выполнением его в родной среде и через COM может быть очень существенна, а при этом возможность перенести основной код программы в эту среду нет, то прибегают к другой хитрости.
Например у нас есть база Access, которая открывает Excel, сливает туда данные из таблицы для отчета, а потом еще занимается его форматированием. И вот представте ей приходится пробегать несколько раз по большому кол-ву строк, устанавливая нужное форматирование и т.п. и т.д.

И вот тогда делают так. Программным способом, через тот же COM, добавляют модуль и записывают в него макрос, после чего просто запускают этот макрос в своем родном приложении. Тут на форуме как раз был топик по программному добавлению кнопки на лист в Excel'е и кода обработчика события нажатия на эту кнопку.
258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
Если надо универсальное решение, т.е. просто надо отправить письмо сосвложением любым способом, то есть два способа:
1. использовать универсальный почтовый стандарт MAPI. Все хороший почтовые программы поддерживают MAPI и сообщают системе о своей поддержке, поэтому программе не нужно думать какая программа будет запущена, код будет все равно один и тот же (а система запустит почтовую программу по умолч.). Подробный пример отправки письма с вложением был в одном из топиков на форуме.

2. Использовать свою собственную библиотеку (валяются в инете несколько наиболее удачных). Она находится в твоей программе и реализует сетевой протокол SMTP или POP для отправки письма. Т.е. занимается тем, чем занимаются собственно говоря сами почтовые программы.
266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV
Если надо универсальное решение, т.е. просто надо отправить письмо сосвложением любым способом, то есть два способа:
1. использовать универсальный почтовый стандарт MAPI. Все хороший почтовые программы поддерживают MAPI и сообщают системе о своей поддержке, поэтому программе не нужно думать какая программа будет запущена, код будет все равно один и тот же (а система запустит почтовую программу по умолч.). Подробный пример отправки письма с вложением был в одном из топиков на форуме.

2. Использовать свою собственную библиотеку (валяются в инете несколько наиболее удачных). Она находится в твоей программе и реализует сетевой протокол SMTP или POP для отправки письма. Т.е. занимается тем, чем занимаются собственно говоря сами почтовые программы.


Если я правильно понял, 1 вариант позволяет отслеживать посылку сообщения практически любым клиентом, тоесть он более предпочтителен в случае, если нужно не заставлять пользователя отправлять письма определённым клиентом, а использовать тот, который ему нравиться, но при этом контролировать это при помощи резидента?

258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov

Если я правильно понял, 1 вариант позволяет отслеживать посылку сообщения практически любым клиентом, тоесть он более предпочтителен в случае, если нужно не заставлять пользователя отправлять письма определённым клиентом, а использовать тот, который ему нравиться, но при этом контролировать это при помощи резидента?



А вот контролировать через MAPI не получится, нет он конечно сообщит успешно или неуспешно отправлено письмо, но получать уведомление о приходе новой почты как это можно сделать в COM перегрузив данное событие в Outlook'е не получится. Только если ты сам будешь периодически заглядывать туда и проверять папку входящие на предмет новой почты (дай бог чтоб ее никуда собственный макрос почтовика не переложил). Так что MAPI конечно уступает возможностям COM технологии когда ты получаешь полный контроль над приложением. Кстати TheBat тоже имеет свою COM-модель и подключив проекте надлежащую бибилиотеку также можно ковыряться и в нем.

266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV


А вот контролировать через MAPI не получится, нет он конечно сообщит успешно или неуспешно отправлено письмо, но получать уведомление о приходе новой почты как это можно сделать в COM перегрузив данное событие в Outlook'е не получится. Только если ты сам будешь периодически заглядывать туда и проверять папку входящие на предмет новой почты (дай бог чтоб ее никуда собственный макрос почтовика не переложил). Так что MAPI конечно уступает возможностям COM технологии когда ты получаешь полный контроль над приложением. Кстати TheBat тоже имеет свою COM-модель и подключив проекте надлежащую бибилиотеку также можно ковыряться и в нем.


Да нет, меня интересует как раз момент отправки. Например, хочу, чтобы при отправки в качестве вложения файла с именеи X он копировался в папку Y.

258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
я конечно не знаток MAPI, но на сколько я в курсе, через MAPI так контроливать не получится.

Можно токо если ты сам через MAPI создаешь письмо со вложением и отправляешь его, тогда попутно и скопировать.

В принципе, анитивирусные программы вон как то отслеживают приход и отправку почты с файлами, интересно как они это сделали... наверное опускаются на более низкий сетевой уровень, по типу firewall, контролируют стэк TCP/IP.
266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV
я конечно не знаток MAPI, но на сколько я в курсе, через MAPI так контроливать не получится.

Можно токо если ты сам через MAPI создаешь письмо со вложением и отправляешь его, тогда попутно и скопировать.

В принципе, анитивирусные программы вон как то отслеживают приход и отправку почты с файлами, интересно как они это сделали... наверное опускаются на более низкий сетевой уровень, по типу firewall, контролируют стэк TCP/IP.


А только по TCP/IP почта отправляется? Есть 100% уверенность в том, что именно этот протокол используется?

258
22 января 2004 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov

А только по TCP/IP почта отправляется? Есть 100% уверенность в том, что именно этот протокол используется?



Ну, я во первых имел ввиду стэк TCP/IP протоколов. В нем соответственно все протоколы: и низкого уровня TCP,IP и высокого POP, SMTP, FTP, Telnet, WEB.

Но конечно в итоге, никто уровня TCP/IP не пройдет. Просто я сомневаюсь что анитивирусы почту по TCP проверяют, проще наверное сразу POP, SMTP смотреть.

266
22 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV


Ну, я во первых имел ввиду стэк TCP/IP протоколов. В нем соответственно все протоколы: и низкого уровня TCP,IP и высокого POP, SMTP, FTP, Telnet, WEB.

Но конечно в итоге, никто уровня TCP/IP не пройдет. Просто я сомневаюсь что анитивирусы почту по TCP проверяют, проще наверное сразу POP, SMTP смотреть.


Енто уже интереснее... Так глядишь, из отпавшей задачи вырастет свой антивирус на VB:D
А есть ли в VB средства, для работы с этими протоколами?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог