sozdat_i_otpravit_pismo_programmno

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
sozdat_i_otpravit_pismo_programmno [2023/09/18 10:49]
tro
sozdat_i_otpravit_pismo_programmno [2024/12/18 13:54] (текущий)
tro
Строка 1: Строка 1:
 ====== Создать и отправить єлектронное письмо email программно ====== ====== Создать и отправить єлектронное письмо email программно ======
  
-**Вариант 1**+===== Вариант 1 (с сохранением отправленного письма в док.ИсходящиеПисьма ===== 
 <code> <code>
 &НаСервере &НаСервере
Строка 51: Строка 52:
 </code> </code>
  
-**Вариант 2 (без сохранения в док.ИсходящиеЭлектронныеСообщения)**+===== Вариант 2 с добавлением вложения в письмо ===== 
 +<code> 
 +Функция ОтправитьТабличныйДокументЭлектроннойПочтойКакPDF(УчетнаяЗаписьПочтыОтправителя, ПочтаПолучателя, ТекстПисьма, ТемаПисьма, АдресТабличногоДокументаВоВременномХранилище, ДокументОснование=Неопределено) 
 +  
 + УспешноОтправлено = Ложь; 
 +  
 + Если УчетнаяЗаписьПочтыОтправителя = Неопределено Или УчетнаяЗаписьПочтыОтправителя.Пустая() Тогда  
 + Возврат УспешноОтправлено;  
 + КонецЕсли;  
 +  
 + СписокПолучателей = Новый Массив; 
 + СписокПолучателей.Добавить(ПочтаПолучателя);  
 +  
 + ВременноеХранилищеФайла = ПоместитьВоВременноеХранилище(АдресТабличногоДокументаВоВременномХранилище, Новый УникальныйИдентификатор); 
 + //Вложения = Новый Массив; 
 + //ОписаниеВложения = Новый Структура("Представление, АдресВоВременномХранилище", РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf", ВременноеХранилищеФайла); 
 + //Вложения.Добавить(ОписаниеВложения); 
 +  
 + НовоеПисьмоИсходящее = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент(); 
 +  
 + НовоеПисьмоИсходящее.Автор = ПараметрыСеанса.ТекущийПользователь; 
 + НовоеПисьмоИсходящее.УчетнаяЗапись = УчетнаяЗаписьПочтыОтправителя; 
 + НовоеПисьмоИсходящее.Дата = ТекущаяДата(); 
 + НовоеПисьмоИсходящее.ДатаКогдаОтправить = НовоеПисьмоИсходящее.Дата+1; 
 + НовоеПисьмоИсходящее.Кодировка = "UTF-8"; 
 + НовоеПисьмоИсходящее.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная; 
 +  
 + НовоеПисьмоИсходящее.ТипТекста                  = Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст; 
 + НовоеПисьмоИсходящее.ЕстьВложения = Истина;  
 + НовоеПисьмоИсходящее.Тема = ТемаПисьма; 
 + НовоеПисьмоИсходящее.Текст                      = ТекстПисьма; 
 + НовоеПисьмоИсходящее.Основание = ДокументОснование;  
 + НовоеПисьмоИсходящее.Комментарий    = "Создано автоматически при авто-создании счетов: "+ТекущаяДата(); 
 + 
 + Для Каждого СтрокаПолучаетелей из СписокПолучателей Цикл 
 + Если НЕ ПустаяСтрока(СтрокаПолучаетелей) Тогда 
 + НоваяЗаписьОПолучателе = НовоеПисьмоИсходящее.ПолучателиПисьма.Добавить(); 
 + НоваяЗаписьОПолучателе.Адрес = СокрЛП(СтрокаПолучаетелей); 
 + НовоеПисьмоИсходящее.СписокПолучателейПисьма = НовоеПисьмоИсходящее.СписокПолучателейПисьма+СокрЛП(СтрокаПолучаетелей)+";"; 
 + КонецЕсли; 
 + КонецЦикла; 
 +  
 +  
 + Попытка 
 + НовоеПисьмоИсходящее.Записать(РежимЗаписиДокумента.Запись); 
 + УспешноЗаписано = Истина; 
 + Исключение 
 + ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки()); 
 + УспешноЗаписано = Ложь;  
 + КонецПопытки; 
 +  
 + Если УспешноЗаписано Тогда   
 +  
 + //Добавляем вложение с ВременногоХранилища. Вложение добавляется только к ссылке 
 + УправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(НовоеПисьмоИсходящее.Ссылка,ВременноеХранилищеФайла,РегистрыСведений.РегистрКонстант.ПолучитьЗначениеКонстанты("Наименование вложения в письме") + "Рахунок.pdf",12); 
 + 
 + Попытка  
 + ПисьмоОбъект = НовоеПисьмоИсходящее.Ссылка.ПолучитьОбъект(); 
 + ИдентификаторПисьма = Взаимодействия.ВыполнитьОтправкуПисьма(ПисьмоОбъект); 
 + ПисьмоОбъект.ИдентификаторСообщения = ИдентификаторПисьма; 
 + ПисьмоОбъект.СтатусПисьма    = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено; 
 + ПисьмоОбъект.ДатаОтправления = ТекущаяДатаСеанса(); 
 + ПисьмоОбъект.Записать(РежимЗаписиДокумента.Запись);  
 +  
 + УспешноОтправлено = Не ПустаяСтрока(ИдентификаторПисьма); 
 + Исключение 
 + ЗаписьЖурналаРегистрации("Отправка письма счетов", УровеньЖурналаРегистрации.Ошибка,,,"Ошибка отправки письма с авто-счетом "+ПочтаПолучателя+", "+ОписаниеОшибки()); 
 + УспешноОтправлено = Ложь;  
 + КонецПопытки; 
 +  
 + КонецЕсли; 
 +  
 + Возврат УспешноОтправлено; 
 +  
 +КонецФункции 
 +</code> 
 + 
 + 
 +===== Вариант 3 (без сохранения в док.ИсходящиеЭлектронныеСообщения) ===== 
 <code> <code>
 ПараметрыПисьма = Новый Структура; ПараметрыПисьма = Новый Структура;
Строка 67: Строка 147:
 КонецПопытки; КонецПопытки;
 </code> </code>
 +
 +
  • /sites/data/attic/sozdat_i_otpravit_pismo_programmno.1695034188.txt.gz
  • Последнее изменение: 2023/09/18 10:49
  • tro