|
8.3, программно отправить e-mail | ☑ | ||
---|---|---|---|---|
0
YDen
11.10.24
✎
16:19
|
Здравствуйте.
Поиском пользовался, но там объяснение как из готовых конфигураций послать средствами 1с печатную форму в xls формате. Плиз, кто делал, подскажите код. 8.3 версия, самописная конфигурация, простой документ с ТЧ, создана печатная форма. Нужно программно отправить e-mail с вложением печатной формы в формате xlsx. Благодарю |
|||
1
big
11.10.24
✎
16:22
|
воюшмать... 20 лет на форуме и не знать как мыло из снеговика отправить... (((( рукалицо...
|
|||
2
Волшебник
11.10.24
✎
16:27
|
Процедура ПослатьПисьмо(Получатели, ПутьФайла) ОтправительСистема1С = Справочники.УчетныеЗаписиЭлектроннойПочты.Системная; интернетПочта = Новый ИнтернетПочта; ПодключитьсяКСерверуЭлектроннойПочты(интернетПочта, ОтправительСистема1С); письмо = Новый ИнтернетПочтовоеСообщение; письмо.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.HTML); письмо.Тема = ТемаПисьма; Для Каждого получатель ИЗ Получатели Цикл получательПисьма = письмо.Получатели.Добавить(); получательПисьма.Адрес = получатель.Адрес; получательПисьма.ОтображаемоеИмя = получатель.Пользователь.Наименование; КонецЦикла; письмо.Отправитель = ОтправительСистема1С.АдресЭлектроннойПочты; письмо.ИмяОтправителя = "Система 1С"; письмо.Вложения.Добавить(ПутьФайла, "НазваниеВложения"); интернетПочта.Послать(письмо); ОтключитьсяОтСервераЭлектроннойПочты(интернетПочта); КонецПроцедуры //============================================================================== Процедура ПодключитьсяКСерверуЭлектроннойПочты(пИнтернетПочта, пУчетнаяЗапись) почтовыйПрофиль = УправлениеЭлектроннойПочтой.ПолучитьИнтернетПочтовыйПрофиль(пУчетнаяЗапись); Попытка пИнтернетПочта.Подключиться(почтовыйПрофиль); Исключение инфоОбОшибке = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации( "ОтправкаОповещений.ПодключитьсяКСерверуЭлектроннойПочты", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(инфоОбОшибке) + Символы.ПС + __.JSON(почтовыйПрофиль)); ВызватьИсключение "Не удалось подключиться к серверу электронной почты для отправки сообщения. |" + КраткоеПредставлениеОшибки(инфоОбОшибке); КонецПопытки; КонецПроцедуры //============================================================================== Процедура ОтключитьсяОтСервераЭлектроннойПочты(пИнтернетПочта) Попытка пИнтернетПочта.Отключиться(); Исключение инфоОбОшибке = ИнформацияОбОшибке(); ЗаписьЖурналаРегистрации( "ОтправкаОповещений.ОтключитьсяОтСервераЭлектроннойПочты", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(инфоОбОшибке)); ВызватьИсключение "Не удалось отключиться от сервера электронной почты. |" + КраткоеПредставлениеОшибки(инфоОбОшибке); КонецПопытки; КонецПроцедуры |
|||
3
YDen
11.10.24
✎
16:31
|
(2) Благодарю, но чуть не то. Это выдернуто из контекста. У меня с нуля конфигурация.
Именно документ с ТЧ, его печатная форма по e-mail в xlsx. |
|||
4
yurikmellon2
11.10.24
✎
16:34
|
(0)
Профиль = Новый ИнтернетПочтовыйПрофиль;
|
|||
5
YDen
11.10.24
✎
16:37
|
Коллеги, а с сохранением в xlsx и его последующей отправкой по e-mail нет кода?
Конфигурация - не коммерческий продукт, чисто на энтузиазме. благодарю |
|||
6
Волшебник
11.10.24
✎
16:43
|
(5) Вы сами что-то будете делать или всю работу хотите переложить на форум?
|
|||
7
YDen
11.10.24
✎
16:46
|
(6) Почему же, делаю. Не могу сообразить, как в Обработкупроведения запихать это:
Процедура СформироватьДокумент(Макет) ТабДок = Новый ТабличныйДокумент; ШапкаОбласть = Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(ШапкаОбласть); ПотокВПамяти = Новый ПотокВПамяти(); ТабДок.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.XLSX); ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные(); Тема = "Тема от: "+Строка(Формат(ТекущаяДата()-86400, "ДФ=dd.MM.yyyy")); ТекстПисьма = ""; ОтправитьПисьмоПоЭлектроннойПочте("Адрес отправки", ,Тема, ТекстПисьма, ДвоичныеДанные, "Имя отправителя"); КонецПроцедуры &НаСервере Процедура ОтправитьПисьмоПоЭлектроннойПочте(АдресПочты, Копия = Неопределено, Тема, ТекстПисьма, Вложение = Неопределено, ИмяОтправителя) ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль; ПочтовыйПрофиль.ВремяОжидания = 300;// Google рекомендует 5 минут // Исходящая почта //Если ФормироватьIMAPПрофиль Тогда ПочтовыйПрофиль.АдресСервераIMAP = "imap.yandex.ru"; // imap.mail.ru ПочтовыйПрофиль.ПользовательIMAP = "[email protected]"; // [email protected] ПочтовыйПрофиль.ПортIMAP = 993; // 993 Попытка ПочтовыйПрофиль.ИспользоватьSSLIMAP = Истина; Исключение Сообщить("Не работает служба SSL IMAP! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.ПарольIMAP = "123"; //КонецЕсли; //Если ФормироватьSMTPПрофиль Тогда ПочтовыйПрофиль.АдресСервераSMTP = "smtp.yandex.ru"; // smtp.mail.ru ПочтовыйПрофиль.ПользовательSMTP = "[email protected]"; // [email protected] ПочтовыйПрофиль.ПортSMTP = 465; // 465 Попытка ПочтовыйПрофиль.ИспользоватьSSLSMTP = Истина; Исключение Сообщить("Не работает служба SSL SMTP! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.ПарольSMTP = "123"; ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login; //КонецЕсли; // Входящая почта //Если ФормироватьPOP3Профиль Тогда ПочтовыйПрофиль.АдресСервераPOP3 = "pop.yandex.ru"; // pop.mail.ru ПочтовыйПрофиль.Пользователь = "[email protected]"; // [email protected] ПочтовыйПрофиль.ПортPOP3 = 993; // 995 Попытка ПочтовыйПрофиль.ИспользоватьSSLPOP3 = Истина; Исключение Сообщить("Не работает служба SSL POP3! Для корректной работы необходима платформа 1С версии не менее 8.3!"); КонецПопытки; ПочтовыйПрофиль.Пароль = "123"; //Если НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.APOP Тогда // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.APOP; //ИначеЕсли НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.CramMD5 Тогда // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.CramMD5; //Иначе // ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная; //КонецЕсли; //КонецЕсли; ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение; ПочтовоеСообщение.Отправитель.Адрес = "Адрес"; ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя; ПочтовоеСообщение.Получатели.Добавить(АдресПочты); ПочтовоеСообщение.Тема = Тема; ПочтовоеСообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст); Если Вложение <> Неопределено Тогда Тема = Тема+".xlsx"; ПочтовоеСообщение.Вложения.Добавить(Вложение,Тема); КонецЕсли; Email = Новый ИнтернетПочта; Попытка Email.Подключиться(ПочтовыйПрофиль); Email.Послать(ПочтовоеСообщение); // Сообщить("Отправлено письмо на e-mail:"+СокрЛП(ТекПолучатель)); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Email.Отключиться(); КонецПроцедуры |
|||
8
Волшебник
11.10.24
✎
16:45
|
(7) При проведении нельзя взаимодействовать с почтовым сервером (крайне не рекомендуется).
|
|||
9
Lama12
11.10.24
✎
16:58
|
(7) Жесть. 🤦♂️
Ставь задание в очередь. Потом очередь разбирай и отправляй письма. Проведение должно быть стремительным и быстрым. Нафига там отправка почты? |
|||
10
fly7
11.10.24
✎
23:13
|
(9) а если в конце проведения пульнуть отправку в фоновое задание?
|
|||
11
craxx
12.10.24
✎
06:56
|
(7) Мдя... 20 лет стажа на форуме...
Просто слов нету.. |
|||
12
osa1C
12.10.24
✎
07:39
|
(11) Судя по темам человек 20 лет с клюшками работал. Так что не стоит осуждать
|
|||
13
Злоп
12.10.24
✎
12:38
|
(12) В клюшках те же советы что выше и здесь по 8-ке.
костылестроителей везде хватает. . Автор, что будет в проведении при повторном проведении? |
|||
14
Fram
12.10.24
✎
15:58
|
(13) это будет его следующая тема здесь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |