Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

Модуль 12. Работа с электронной почтой из скрипта

Отправка сообщений по SMTP из VBScript, объектная модель CDO, объекты CDO.Message и CDO.Configuration

Возможность отправлять электронную почту из скрипта часто бывает очень полезной. Например:

1) сообщаем о результатах выполнения какой-либо операции (например, резервного копирования);

2) по расписанию при помощи скрипта проверяем что-либо, и, в случае необходимости, отправляем сообщение администратору (к примеру, работает ли та или иная программа);

3) передаем данные по мере их возникновения с удаленнонго компьютера (например, Web-сервера провайдера при заказе чего-либо);

4) организуем массовые рассылки электронной почты из скрипта

У администратора есть две возможности реализовать в скрипте работу с электронной почтой:

1) воспользоваться специализированным программным интерфейсом CDO

2) воспользоваться утилитами командной строки - например, sendmail и mapisend от Microsoft или bmail

Каждый из методов имеет свои достоинства и недостатки.

CDO (Collaboration Data Objects) - набор библиотек се для работы с электронной почтой - сообщения, папки, вложения и т.п. Существует множество версий CDO.

o       Первая версия называлась OLE Messaging, поставлялась с Exchange 4.0.

o       Версия 1.1 - Active Messaging, поставлялась с Exchange 5.0.

o       Версия 1.2 - Collaboration Data Objects, поставлялась с Exchange 5.5.

o       CDO последних версий можно сгрузить с Web-сайта Microsoft.

o       CDO версии 1.2.1 (Cdo.dll) устанавливается вместе с MS Office, начиная с 97. Использует MAPI.

o       CDONTS (Cdonts.dll) поставляется вместе с IISNT), в основном предназначена для работы с IIS и умеет работать только с SMTP (но не MAPI).

o       CDO for Windows 2000 (Cdosys.dll) - поставляется в составе Windows 2000, умеет работать с SMTP и NNTPMAPI не умеет). Предназначены для администраторов, умеют приделывать disclaimers ко всем сообщениям, отправляемым с сервера, болкировать спам, автоматически перенаправлять и фильтровать сообщения и т.п.

o       CDO for Exchange 2000 (CDOex.dll) - версия 3.0 для Exchnage 2000. Расширяет возможности Cdosys за счет работы с Web Storage System, объектами календарей и т.п.

Как выглядит работа с CDO:

Dim oMyMail

Set oMyMail = CreateObject("CDO.Message")

oMyMail.To = "Administrator@nwtraders.msft"

oMyMail.From = "Administrator@nwtraders.msft"

oMyMail.Subject = "Hello from CDO"

oMyMail.TextBody = "Our letter"

oMyMail.AddAttachment "C:\1.txt"

oMyMail.Send

Если на компьютере стоит только IIS (почтовый профиль не настроен), то сообщение кладется в каталог Pickup - оттуда его забирает служба SMTP и перенаправляет в соответствии со своими настройками.

Если на компьютере настроен Exchange 2000, то тоже в каталог Pickup, но уже в соответствии с тем, что как именно работает служба SMTP на этом компьютере.

Если для текущего пользователя на компьютере настроен профиль MAPI (через Outlook), используется именно он.

Менять методы отправки электронной почты можно при помощи объекта CDO.Configuration. Подробнее - в CDO for Windows 2000 Platform SDK.

Например, чтобы отправить электронную почту по протоколу SMTP на любой SMTP-совместимый почтовый сервер, можно использовать код

oMyMail.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

(значение 1, которое используется по умолчанию, означает – использовать каталог Pickup).

Указать почтовый сервер можно так:

omyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.YourServer.com"

Настройка режима аутентификации производится при помощи того же объекта CDO.Configuration

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1

Значение 1 означает, что используется базовая аутентификация, значение 0 – без аутентификации (анонимно), значение 2 – аутентификация NTLM.

Имя пользователя и пароль можно передать точно так же:

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"YourLogin@YourDomain.com"

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"Password"

Иногда необходимо также определить использование специфического порта (отличного от 25), будет или нет использоваться SSL и время тайм-аута:

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

oMyMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

После любых изменений, вносимых в конфигурацию, изменения вначале надо сохранить:

oMyMail.Configuration.Fields.Update

и только после вызывать метод Send:

oMyMail.Send

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru