Создать и отправить єлектронное письмо email программно

Вариант 1 (с сохранением отправленного письма в док.ИсходящиеПисьма

&НаСервере
Процедура УведомитьВПисьме (ПолучательУведомления,Ошибки,ОсталосьКарточек,ОсталосьДней)
//тут массив с емаилами
СписокПолучателей	=	ОпределитьЕМаилПолучателя(ПолучательУведомления);
Если СписокПолучателей.Количество()=0 Тогда Возврат; КонецЕсли;
НовоеПисьмоИсходящее	=	Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
НовоеПисьмоИсходящее.Автор	=	ПараметрыСеанса.ТекущийПользователь;
НовоеПисьмоИсходящее.УчетнаяЗапись	=	Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
НовоеПисьмоИсходящее.Дата	=	ТекущаяДата();
НовоеПисьмоИсходящее.ДатаКогдаОтправить	=	НовоеПисьмоИсходящее.Дата+3;
НовоеПисьмоИсходящее.Кодировка	=	"UTF-8";
НовоеПисьмоИсходящее.Важность	=	Перечисления.ВариантыВажностиВзаимодействия.Высокая;
НовоеПисьмоИсходящее.ТипТекста =	Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст;
НовоеПисьмоИсходящее.ОтправительПредставление	=	"BAS УТ (торговая)";
НовоеПисьмоИсходящее.Тема	=	"ВНИМАНИЕ ! ПАКТУМ-Контрагент осталось "+ОсталосьКарточек+" карточек и "+цел(ОсталосьДней)+" дней";
НовоеПисьмоИсходящее.Текст =	Ошибки;
НовоеПисьмоИсходящее.Комментарий	=	"Создано автоматически ПАКТУМ-уведомлением: "+ТекущаяДата();
Для Каждого СтрокаПолучаетелей из СписокПолучателей Цикл
Если НЕ ПустаяСтрока(СтрокаПолучаетелей) Тогда
НоваяЗаписьОПолучателе	=	НовоеПисьмоИсходящее.ПолучателиПисьма.Добавить();
НоваяЗаписьОПолучателе.Адрес	=	СокрЛП(СтрокаПолучаетелей);
НовоеПисьмоИсходящее.СписокПолучателейПисьма	=	НовоеПисьмоИсходящее.СписокПолучателейПисьма+СокрЛП(СтрокаПолучаетелей)+";";
КонецЕсли;
КонецЦикла;
Попытка
НовоеПисьмоИсходящее.Записать(РежимЗаписиДокумента.Запись);
ПисьмоОбъект	= НовоеПисьмоИсходящее.Ссылка.ПолучитьОбъект();
ИдентификаторПисьма	= Взаимодействия.ВыполнитьОтправкуПисьма(ПисьмоОбъект);
ПисьмоОбъект.ИдентификаторСообщения = ИдентификаторПисьма;
ПисьмоОбъект.СтатусПисьма	= Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено;
ПисьмоОбъект.ДатаОтправления	= ТекущаяДатаСеанса();
ПисьмоОбъект.Записать(РежимЗаписиДокумента.Запись);
Исключение
КонецПопытки;
КонецПроцедуры

Вариант 2 с добавлением вложения в письмо

Функция ОтправитьТабличныйДокументЭлектроннойПочтойКакPDF(УчетнаяЗаписьПочтыОтправителя, ПочтаПолучателя, ТекстПисьма, ТемаПисьма, АдресТабличногоДокументаВоВременномХранилище, ДокументОснование=Неопределено)
УспешноОтправлено = Ложь;
Если УчетнаяЗаписьПочтыОтправителя = Неопределено Или УчетнаяЗаписьПочтыОтправителя.Пустая() Тогда
Возврат УспешноОтправлено;
КонецЕсли;
СписокПолучателей	=	Новый Массив;
СписокПолучателей.Добавить(ПочтаПолучателя);
ВременноеХранилищеФайла = ПоместитьВоВременноеХранилище(АдресТабличногоДокументаВоВременномХранилище, Новый УникальныйИдентификатор);
//Вложения = Новый Массив;
//ОписаниеВложения = Новый Структура("Представление, АдресВоВременномХранилище", РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf", ВременноеХранилищеФайла);
//Вложения.Добавить(ОписаниеВложения);
НовоеПисьмоИсходящее	=	Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
НовоеПисьмоИсходящее.Автор	=	ПараметрыСеанса.ТекущийПользователь;
НовоеПисьмоИсходящее.УчетнаяЗапись	=	УчетнаяЗаписьПочтыОтправителя;
НовоеПисьмоИсходящее.Дата	=	ТекущаяДата();
НовоеПисьмоИсходящее.ДатаКогдаОтправить	=	НовоеПисьмоИсходящее.Дата+1;
НовоеПисьмоИсходящее.Кодировка	=	"UTF-8";
НовоеПисьмоИсходящее.Важность	=	Перечисления.ВариантыВажностиВзаимодействия.Обычная;
НовоеПисьмоИсходящее.ТипТекста =	Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст;
НовоеПисьмоИсходящее.ЕстьВложения	=	Истина;
НовоеПисьмоИсходящее.Тема	=	ТемаПисьма;
НовоеПисьмоИсходящее.Текст =	ТекстПисьма;
НовоеПисьмоИсходящее.Основание	=	ДокументОснование;
НовоеПисьмоИсходящее.Комментарий	=	"Создано автоматически при авто-создании счетов: "+ТекущаяДата();
Для Каждого СтрокаПолучаетелей из СписокПолучателей Цикл
Если НЕ ПустаяСтрока(СтрокаПолучаетелей) Тогда
НоваяЗаписьОПолучателе	=	НовоеПисьмоИсходящее.ПолучателиПисьма.Добавить();
НоваяЗаписьОПолучателе.Адрес	=	СокрЛП(СтрокаПолучаетелей);
НовоеПисьмоИсходящее.СписокПолучателейПисьма	=	НовоеПисьмоИсходящее.СписокПолучателейПисьма+СокрЛП(СтрокаПолучаетелей)+";";
КонецЕсли;
КонецЦикла;
Попытка
НовоеПисьмоИсходящее.Записать(РежимЗаписиДокумента.Запись);
УспешноЗаписано	=	Истина;
Исключение
ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки());
УспешноЗаписано	=	Ложь;
КонецПопытки;
Если УспешноЗаписано Тогда
//Добавляем вложение с ВременногоХранилища. Вложение добавляется только к ссылке
УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(НовоеПисьмоИсходящее.Ссылка,ВременноеХранилищеФайла,РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf",12);
Попытка
ПисьмоОбъект	= НовоеПисьмоИсходящее.Ссылка.ПолучитьОбъект();
ИдентификаторПисьма	= Взаимодействия.ВыполнитьОтправкуПисьма(ПисьмоОбъект);
ПисьмоОбъект.ИдентификаторСообщения = ИдентификаторПисьма;
ПисьмоОбъект.СтатусПисьма	= Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено;
ПисьмоОбъект.ДатаОтправления	= ТекущаяДатаСеанса();
ПисьмоОбъект.Записать(РежимЗаписиДокумента.Запись);
УспешноОтправлено	=	Не ПустаяСтрока(ИдентификаторПисьма);
Исключение
ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки());
УспешноОтправлено	=	Ложь;
КонецПопытки;
КонецЕсли;
Возврат УспешноОтправлено;
КонецФункции

Вариант 3 (без сохранения в док.ИсходящиеЭлектронныеСообщения)

ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Кому", "denis.mamchencko@gmail.com;e.dvorkina@viatec.ua;y.trotskiy@viatec.ua");
ПараметрыПисьма.Вставить("Тема", "Механизм автоперемещения не сработал");
ПараметрыПисьма.Вставить("Тело", ОписаниеОшибки());
ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
Попытка
Идентификатор = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты, ПараметрыПисьма);
Если ЗначениеЗаполнено(Идентификатор) Тогда
Отправлено = Истина;
КонецЕсли;
Исключение
КонецПопытки;