Функция ОтправитьЭлектронноеПисьмоHTML(
пАдрес,
пИмяОтправителя = "sender records",
пОтправитель = "reportbot@SCI.com.ua",
пТема,
пТекст,
пВложения,
пОписаниеПисьма = "",
пПочтовоеСоединение = Неопределено
) Экспорт
Сообщение = Новый ИнтернетПочтовоеСообщение;
Если ПустаяСтрока(пАдрес) Тогда
ОбщегоНазначения.СообщитьОбОшибке("Ошибка! В электронном письме ("+пОписаниеПисьма+") не указан адрес",,, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецЕсли;
Сообщение.Получатели.Добавить(пАдрес);
Сообщение.Тема =пТема;
Сообщение.ИмяОтправителя=пИмяОтправителя;
Сообщение.Отправитель=пОтправитель;
Для каждого лИмяФайлВложения из пВложения Цикл
Если ПустаяСтрока(лИмяФайлВложения) Тогда
Продолжить;
КонецЕсли;
Попытка
Сообщение.Вложения.Добавить(лИмяФайлВложения);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при присоединении вложения к электронному письму", СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
КонецЦикла;
Сообщение.Кодировка = "windows-1251";
ТекстПисьма = Сообщение.Тексты.Добавить(пТекст);
ТекстПисьма.Кодировка = "windows-1251";
ТекстПисьма.ТипТекста = ТипТекстаПочтовогоСообщения.HTML;
Если пПочтовоеСоединение = Неопределено Тогда
Почта = Новый ИнтернетПочта();
ПочтовыйПрофиль = ПолучитьПочтовыйПрофиль();
Попытка
Почта.Подключиться(ПочтовыйПрофиль);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при подключению к почтовому профилю", СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
Попытка
Почта.Послать(Сообщение);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
Почта.Отключиться();
Иначе
Попытка
пПочтовоеСоединение.Послать(Сообщение);
Исключение
ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажное);
Возврат ложь;
КонецПопытки;
КонецЕсли;
Возврат истина;
КонецФункции
Функция ПолучитьПочтовыйПрофиль() Экспорт
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "192.168.4.16";
Профиль.АдресСервераPOP3 = "192.168.4.16";
Профиль.Пользователь = "MailUser";
Профиль.Пароль = "MailPassword";
Профиль.ПортSMTP = 25;
Профиль.ПортPOP3 = 110;
Профиль.ВремяОжидания = 60;
Возврат Профиль;
КонецФункции
Комментарии к параметрам функции:
пВложения - массив строк, значение элемента - полный путь к файлу вложения
пОписаниеПисьма - идентификатор, которая будет выводится в сообщении об ошибке
пПочтовоеСоединение - можно передавать в функцию объект ИнтернетПочта (незначительно экономит время отправки). Если не заполнено - используется функция ПолучитьПочтовыйПрофиль
Пример использования
Для каждого АдресЭлектроннойПочты из масАдресаЭлектроннойПочты Цикл
Если ПустаяСтрока(АдресЭлектроннойПочты) Тогда
Сообщить("Для клиента "+Клиент+" не установлен адрес электронной почты");
Продолжить;
КонецЕсли;
УправлениеЭлектроннойПочтой
.ОтправитьЭлектронноеПисьмоHTML(
АдресЭлектроннойПочты,
"Sharashkyna Contora Incorporated",
"reportbot@SCI.com.ua",
"Задолженность по оплате комиссии",
ТекстСообщения,
Вложения);
КонецЦикла;