В стандартном компоненте Directum для отправки почты SBUM, нет возможности подключаться к серверам с шифрованием TSL/SSL, а также отправлять письма в формате HTML с вложенными в текст письма картинками.
Для решения данной задачи можно использовать сторонний компонент работы с почтой, который содержится в поставке MS Office под названием Microsoft Collaboration Data Object.
Пример для отправки почты с использованием TSL/SSL и вложением картинок в текст письма, на примере подключения к gmail.com:
// Создать объект CDO
try
CDO_Obj = CreateObject("CDO.Message")
except
Exit("Невозможно создать объект CDO")
endexcept
// Указать параметры письма
CDO_Obj.BodyPart.Charset = "utf-8" // Кодировка письма
CDO_Obj.To = "Адрес получателя"
CDO_Obj.CC = ""
CDO_Obj.BCC = ""
CDO_Obj.Sender = "Отправитель"
CDO_Obj.From = "Адрес отправителя = login@gmail.com" // Здесь также можно указать строку в формате "SenderName" <адрес EMail>
CDO_Obj.Subject = "Тема"
CDO_Obj.HTMLBody = "Тело письмо в формате HTML"
// в параметре HTMLBody должны быть строка вида <img src = “cid:1.png” >
// без каких-либо путей (относительных или абсолютных)
fldr = "d:\"
filename = "1.png"
filepath = "d:\Документ.doc"
// Здесь указывается путь к картинке(ам), которая будет вложена в текст письма
cdoRefTypeId = 0
CDO_Obj.AddRelatedBodyPart(fldr & filename; filename ; cdoRefTypeId)
// Вложения в письмо
CDO_Obj.AddAttachment(filepath)
// Указать параметры подключения к серверу
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 // тип подключения: 1 - через профиль, 2 - через SMTP
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" // SMTP сервер
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 // SMTP - аунтентификация (0/1)
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "login" // имя пользователя
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" // Пароль пользователя
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 // Порт подключения (25/465/587)
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true // Использование шифрования
CDO_Obj.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 // Таймаут
CDO_Obj.Configuration.Fields.Update // Обязательная строка после обновления параметров
try
CDO_Obj.Send // Непосредственно отправка
SendResult = "Отправилось без ошибок"
except
// Ловим ошибки и обрабатываем их
SendException = GetLastException()
SendResult = SendException.Message
endexcept
Окно(SendResult)
В результате в мой Outlook получил письмо следующего вида (в данном случае картинка - это штрих код):
Я так понимаю к таком серверу:
Имя сервера: smtp.office365.com
Порт: 587
Метод шифрования: TLS
я стандартным методом подключиться не смогу?
Да, все верно. Если у вас версия Directum ниже 5.2. С версии Directum 5.2 изменили работу SBUM - там должно работать.
Авторизуйтесь, чтобы написать комментарий