1С + CDO

//Адрес

буфАдрес = СокрЛП(СтруктураПараметров.Адрес);

Если ПустаяСтрока(буфАдрес) Тогда

Сообщить("Письмо не отправлено! Не указан адрес!");

Возврат;

КонецЕсли;

//Сервер

АдресСервераSMTP = СокрЛП(СтруктураПараметров.АдресСервераSMTP);

Если ПустаяСтрока(АдресСервераSMTP) Тогда

Сообщить("Письмо не отправлено! Не указан SMTP Сервер!");

Возврат;

КонецЕсли;

//Порт

ПортSMTP = СтруктураПараметров.ПортSMTP;

//Аутентификация

АутентификацияSMTP = СокрЛП(СтруктураПараметров.АутентификацияSMTP);

имяПользователя = СокрЛП(СтруктураПараметров.Пользователь);

Пароль = СокрЛП(СтруктураПараметров.Пароль);

ИспользоватьSSL = 0;

Если СтруктураПараметров.SMTP_SSL Тогда

ИспользоватьSSL = 1;

КонецЕсли;

ОшибкаСоздания = Ложь;

Попытка

Сообщение = Новый COMОбъект("CDO.Message");

Исключение

Сообщить("Письмо не отправлено! " + ОписаниеОшибки());

ОшибкаСоздания = Истина;

КонецПопытки;

Если ОшибкаСоздания Тогда

Возврат;

КонецЕсли;

Сообщение.Bodypart.Charset = "windows-1251";

Сообщение.Subject = Тема;

Сообщение.From = буфАдрес;

стрКому = "";

Для Каждого ТекАдрес Из Адреса Цикл

стрКому = стрКому + ТекАдрес.Значение + "; ";

КонецЦикла;

Сообщение.To = стрКому;

Сообщение.TextBody = Текст;

Если ДобавлятьВложения Тогда

ТемпПуть = ПолучитьИмяВременногоФайла();

ТемпПуть = СтрЗаменить(ТемпПуть,".tmp","");

СоздатьКаталог(ТемпПуть);

Для Каждого стр Из ДокументПисьмо.Атачи Цикл

файл = ТемпПуть + "\" + стр.ИмяФайла;

стр.Объект.Получить().Записать(файл);

Сообщение.AddAttachment (файл);

КонецЦикла;

КонецЕсли;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = АдресСервераSMTP;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = ПортSMTP;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = ИспользоватьSSL;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 1;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value = имяПользователя;

Сообщение.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = Пароль;

Сообщение.Configuration.Fields.Update();

Попытка

Сообщение.Send();

Ошибка = Ложь;

Исключение

Сообщить("Письмо не отправлено! " + ОписаниеОшибки());

КонецПопытки;

Сообщение = Неопределено;