Выполнить отправку письма. Выполняет отправку электронного письма.
// Выполняет отправку электронного письма.
//
// Параметры:
// Объект - ДокументОбъект.ЭлектронноеПисьмоИсходящее - отправляемое письмо.
//
// Возвращаемое значение:
// Строка - идентификатор почтового сообщения.
//
Функция ВыполнитьОтправкуПисьма(Объект, Соединение = Неопределено, ПараметрыПисьма = Неопределено, ПротоколПочты = "") Экспорт
Если ПротоколПочты <> "" И ПротоколПочты <> "Все" И ПротоколПочты <> "IMAP" Тогда
Возврат Неопределено;
КонецЕсли;
Если ПараметрыПисьма = Неопределено Тогда
ПараметрыПисьма = ПараметрыПисьмаДляОтправки(Объект);
КонецЕсли;
Если Соединение = Неопределено Тогда
Профиль = РаботаСПочтовымиСообщениямиСлужебный.ИнтернетПочтовыйПрофиль(Объект.УчетнаяЗапись);
Попытка
Соединение = Новый ИнтернетПочта;
ПротоколПодключения = ?(ПустаяСтрока(Профиль.АдресСервераIMAP),ПротоколИнтернетПочты.POP3, ПротоколИнтернетПочты.IMAP);
Соединение.Подключиться(Профиль, ПротоколПодключения);
ПротоколПочты = "";
Если ПротоколПодключения = ПротоколИнтернетПочты.IMAP Тогда
Если Не (Объект.УдалятьПослеОтправки
Или УправлениеЭлектроннойПочтой.СерверИсходящейПочтыНеТребуетДополнительнойОтправкиПоIMAP(Профиль.АдресСервераSMTP)) Тогда
ПочтовыеЯщики = Соединение.ПолучитьПочтовыеЯщики();
Для Каждого ПочтовыйЯщик Из ПочтовыеЯщики Цикл
Если НРег(ПочтовыйЯщик) = "отправленные"
Или НРег(ПочтовыйЯщик) = "sent" Тогда
Соединение.ТекущийПочтовыйЯщик = ПочтовыйЯщик;
ПротоколПочты = "Все";
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Исключение
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Во время подключения к учетной записи %1 произошла ошибка
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
Объект.УчетнаяЗапись,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияОбОшибке, Объект.УчетнаяЗапись);
КонецПопытки;
КонецЕсли;
ПараметрыПисьма.Вставить("Соединение", Соединение);
ПараметрыПисьма.Вставить("ПротоколПочты", ПротоколПочты);
ИдентификаторПисьма = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Объект.УчетнаяЗапись, ПараметрыПисьма);
Если ПротоколПочты = "" Тогда
Объект.ИдентификаторСообщения = ПараметрыПисьма.ИдентификаторСообщения;
ИначеЕсли ПротоколПочты = "IMAP" Тогда
Объект.ИдентификаторСообщенияОтправкаIMAP = ПараметрыПисьма.ИдентификаторСообщенияОтправкаIMAP;
ИначеЕсли ПротоколПочты = "Все" Тогда
Объект.ИдентификаторСообщения = ПараметрыПисьма.ИдентификаторСообщения;
Объект.ИдентификаторСообщенияОтправкаIMAP = ПараметрыПисьма.ИдентификаторСообщенияОтправкаIMAP;
КонецЕсли;
Возврат ИдентификаторПисьма;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОткрытьФормуОтправкиПисьма (БСП)
ПередОткрытиемФормыОтправкиПисьма (БСП)
УстановитьПризнакОтправкиУведомления (БСП)