Отправка электронной почты из программы
Отправить электронную почту из программы можно с помощью встроенных функций платформы или используя внешние COM-объекты. Последний случай рассмотрен отдельно, см. Отправка электронной почты с использованием Collaboration Data Objects (CDO). Ниже представлены возможности глобального объекта WebClientControl.
Отправка сообщения из макроса (скрипт-функции)
Функция WebClientControl.SendEMail позволяет задать все параметры отправки непосредственно в момент вызова:
Option Explicit Sub SendEmail WebClientControl.SendEMail _ "SMTP сервер", номер_порта, "SSLV3", _ "логин", "пароль", _ "ящик с которого идет отправка", "кому", _ "Hello!", "This is a message", _ "", False, False, True, 0, 0 If WebClientControl.EmailErrorMsg = "" Then MsgBox "Сообщение отослано" Else MsgBox "Ошибка: " & WebClientControl.EmailErrorMsg End If End Sub
Обратите внимание, что отправка может быть синхронной, программа останавливается и ждет завершения операции, или асинхронной -- выполнение продолжается, в то время, как сообщение отсылается в фоновом потоке.
К сообщению могут быть прикреплены один или несколько файлов. Параметры WipeFile и WipeDir определяют что произойдет с файлами и папкой, где они находятся, после отправки сообщения: будут ли они удалены или сохранены.
Справочник почтовых серверов
Вместо того, чтобы каждый раз прописывать данные почтового сервера в параметрах вызова функции, можно воспользоваться справочником, который находится в Исследователе, в разделе Сервис - Почтовые сервера.
Список почтовых серверов хранится в базе данных в таблице GD_SMTP. Функция SendEmail2 принимает на вход ИД записи из GD_SMTP.
Option Explicit Sub SendEmail WebClientControl.SendEMail2 _ gdcBaseManager.GetIDByRUIDString(РУИД записи из таблицы GD_SMTP), _ "кому", _ "Hello!", "This is a message", _ "", False, False, True, 0, 0 If WebClientControl.EmailErrorMsg = "" Then MsgBox "Сообщение отослано" Else MsgBox "Ошибка: " & WebClientControl.EmailErrorMsg End If End Sub
Если на вход передать 0, то параметры сервера будут взяты из записи, помеченной флагом Основной.