Попытаюсь пролить свет на эти вопросы:
В TDMS есть внутренняя и внешняя почта.
Далее я опишу несколько методов посылки внешней почты.
1. Создаем обычное письмо средствами TDMS, и в поле To - указываем внешний адрес
set Message = ThisApplication.CreateMessage
Message.To = "Me@pochta.ru" ' Это внешний адрес
Message.Body = "Привет"
Message.Subject = " :) "
Message.Send
Теперь это письмо попадет в базу данных TDMS и будет там лежать до тех пор, пока SYSADMIN не войдет в
Меню -> Системные -> Параметры [ вкладка "Внешняя почта"] и нажмет на кнопку "Отправить/получить"
Или пока не вызовет метод ThisApplication.Utility.SendReceiveExtMail (который работает также как и кнопка "Отправить/получить")
После чего письмо уйдет наружу.
Для успешного выполнения, необходимо чтобы были заполненны все поля в настройках POP3 и SMTP серверов.
Потому что этот метод сначала получает внешнюю почту c POP3 сервера (чтобы потом разослать ее внутренним адресатам в TDMS)
А потом отсылает то что в базе через SMTP.
2. Вариант - Можно использовать метод ThisApplication.Utility.SendEMail Tol, Subj, Body
Этот метод работает через Windows Shell, вызывается команда "mailto:"
После чего происходит загрузка дефолтовой почтовой программы, и через командную строку в ней заполняются нужные поля, в открывшемся диалоге.
Минус или плюс, такого метода в том, что пользователь должен нажать на кнопку "Отправить" в открывшемся диалоге.
3. Вариант. Если нам надо "втихаря" отослать письмо наружу, и никого об этом не спрашивать и не уговаривать,
можно воспользоваться стандартной службой Windows
Ниже приведен пример
Set objConf = CreateObject("CDO.Configuration")
Set objEmail = CreateObject("CDO.Message")
Set objFlds = objConf.Fields
With objFlds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'cdoSendUsingPort это порт
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "MyMail" ' Имя SMTP сервера
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0 'Это SMTP аутентификация, тут она у нас нулевая (т.е ее нет)
.Update
End With
Set objEmail.Configuration = objConf
objEmail.From = "me@pochta.ru"
objEmail.To = "emu@pochta.ru"
objEmail.Subject = "subj"
objEmail.Textbody = "body"
objEmail.DSNOptions = 14 'Success, failure or delay (cdoDSNSuccessFailOrDelay)
objEmail.Fields.Update
objEmail.Send
После чего письмо уйдет куда надо. Если конечно были правильно указанны настройки портов и всего прочего.