sozdat_i_otpravit_pismo_programmno

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sozdat_i_otpravit_pismo_programmno [2022/09/09 11:16]
tro
sozdat_i_otpravit_pismo_programmno [2024/12/18 13:54] (текущий)
tro
Строка 1: Строка 1:
-====== Создать и отправить письмо программно ======+====== Создать и отправить єлектронное письмо email программно ====== 
 + 
 +===== Вариант 1 (с сохранением отправленного письма в док.ИсходящиеПисьма ===== 
 <code> <code>
 &НаСервере &НаСервере
Строка 48: Строка 51:
 КонецПроцедуры КонецПроцедуры
 </code> </code>
 +
 +===== Вариант 2 с добавлением вложения в письмо =====
 +<code>
 +Функция ОтправитьТабличныйДокументЭлектроннойПочтойКакPDF(УчетнаяЗаписьПочтыОтправителя, ПочтаПолучателя, ТекстПисьма, ТемаПисьма, АдресТабличногоДокументаВоВременномХранилище, ДокументОснование=Неопределено)
 +
 + УспешноОтправлено = Ложь;
 +
 + Если УчетнаяЗаписьПочтыОтправителя = Неопределено Или УчетнаяЗаписьПочтыОтправителя.Пустая() Тогда
 + Возврат УспешноОтправлено;
 + КонецЕсли; 
 +
 + СписокПолучателей = Новый Массив;
 + СписокПолучателей.Добавить(ПочтаПолучателя);
 +
 + ВременноеХранилищеФайла = ПоместитьВоВременноеХранилище(АдресТабличногоДокументаВоВременномХранилище, Новый УникальныйИдентификатор);
 + //Вложения = Новый Массив;
 + //ОписаниеВложения = Новый Структура("Представление, АдресВоВременномХранилище", РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf", ВременноеХранилищеФайла);
 + //Вложения.Добавить(ОписаниеВложения);
 +
 + НовоеПисьмоИсходящее = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
 +
 + НовоеПисьмоИсходящее.Автор = ПараметрыСеанса.ТекущийПользователь;
 + НовоеПисьмоИсходящее.УчетнаяЗапись = УчетнаяЗаписьПочтыОтправителя;
 + НовоеПисьмоИсходящее.Дата = ТекущаяДата();
 + НовоеПисьмоИсходящее.ДатаКогдаОтправить = НовоеПисьмоИсходящее.Дата+1;
 + НовоеПисьмоИсходящее.Кодировка = "UTF-8";
 + НовоеПисьмоИсходящее.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
 +
 + НовоеПисьмоИсходящее.ТипТекста                  = Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст;
 + НовоеПисьмоИсходящее.ЕстьВложения = Истина;
 + НовоеПисьмоИсходящее.Тема = ТемаПисьма;
 + НовоеПисьмоИсходящее.Текст                      = ТекстПисьма;
 + НовоеПисьмоИсходящее.Основание = ДокументОснование;
 + НовоеПисьмоИсходящее.Комментарий    = "Создано автоматически при авто-создании счетов: "+ТекущаяДата();
 +
 + Для Каждого СтрокаПолучаетелей из СписокПолучателей Цикл
 + Если НЕ ПустаяСтрока(СтрокаПолучаетелей) Тогда
 + НоваяЗаписьОПолучателе = НовоеПисьмоИсходящее.ПолучателиПисьма.Добавить();
 + НоваяЗаписьОПолучателе.Адрес = СокрЛП(СтрокаПолучаетелей);
 + НовоеПисьмоИсходящее.СписокПолучателейПисьма = НовоеПисьмоИсходящее.СписокПолучателейПисьма+СокрЛП(СтрокаПолучаетелей)+";";
 + КонецЕсли;
 + КонецЦикла;
 +
 +
 + Попытка
 + НовоеПисьмоИсходящее.Записать(РежимЗаписиДокумента.Запись);
 + УспешноЗаписано = Истина;
 + Исключение
 + ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки());
 + УспешноЗаписано = Ложь;
 + КонецПопытки;
 +
 + Если УспешноЗаписано Тогда  
 +
 + //Добавляем вложение с ВременногоХранилища. Вложение добавляется только к ссылке
 + УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(НовоеПисьмоИсходящее.Ссылка,ВременноеХранилищеФайла,РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf",12);
 +
 + Попытка
 + ПисьмоОбъект = НовоеПисьмоИсходящее.Ссылка.ПолучитьОбъект();
 + ИдентификаторПисьма = Взаимодействия.ВыполнитьОтправкуПисьма(ПисьмоОбъект);
 + ПисьмоОбъект.ИдентификаторСообщения = ИдентификаторПисьма;
 + ПисьмоОбъект.СтатусПисьма    = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено;
 + ПисьмоОбъект.ДатаОтправления = ТекущаяДатаСеанса();
 + ПисьмоОбъект.Записать(РежимЗаписиДокумента.Запись); 
 +
 + УспешноОтправлено = Не ПустаяСтрока(ИдентификаторПисьма);
 + Исключение
 + ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки());
 + УспешноОтправлено = Ложь;
 + КонецПопытки;
 +
 + КонецЕсли;
 +
 + Возврат УспешноОтправлено;
 +
 +КонецФункции
 +</code>
 +
 +
 +===== Вариант 3 (без сохранения в док.ИсходящиеЭлектронныеСообщения) =====
 +
 +<code>
 +ПараметрыПисьма = Новый Структура;
 +ПараметрыПисьма.Вставить("Кому", "denis.mamchencko@gmail.com;e.dvorkina@viatec.ua;y.trotskiy@viatec.ua");
 +ПараметрыПисьма.Вставить("Тема", "Механизм автоперемещения не сработал");
 +ПараметрыПисьма.Вставить("Тело", ОписаниеОшибки());
 +ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
 +
 +Попытка
 + Идентификатор = РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты, ПараметрыПисьма);
 + Если ЗначениеЗаполнено(Идентификатор) Тогда
 + Отправлено = Истина;
 + КонецЕсли;
 +Исключение
 +КонецПопытки;
 +</code>
 +
 +
  • /sites/data/attic/sozdat_i_otpravit_pismo_programmno.1662722210.txt.gz
  • Последнее изменение: 2022/09/09 11:16
  • tro