Как отправить письмо с вложением типовым механизмом?

1. vechiy 35 23.03.24 21:18 Сейчас в теме
Казалось бы обычная задача.
Отправляю с помощью РаботаСПочтовымиСообщениями.ОтправитьСообщение(ПочтаОтправителя, ПараметрыПисьма);
Как правильно сформировать параметры письма с вложением? Пробовал уже десятком способов. не вижу нигде примера.


ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Кому", АдресаКоторымОтправляемПисьма);
ПараметрыПисьма.Вставить("УчетнаяЗапись", ПочтаОтправителя);
ПараметрыПисьма.Вставить("АдресОтвета", АдресаКоторымОтправляемПисьма);
ПараметрыПисьма.Вставить("Тема", ТемаПисьма);
ПараметрыПисьма.Вставить("Тело", ТекстПисьма);
ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
Вложения = Новый Массив;
Вложение = Новый Структура;
Вложение.Вставить("Ключ","адрес_файла");
Вложения.Добавить(Вложение);
ПараметрыПисьма.Вставить("Вложения", Вложения);


Возврат ПараметрыПисьма;
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. karamazoff 96 23.03.24 21:57 Сейчас в теме
из типовой унф

	Попытка
		
		ФайлыПечатныхФорм = КадровыйЭДОВызовСервера.ВыводимыеФайлыПечатныхФорм(Вложения);
		
		Письмо = Новый ИнтернетПочтовоеСообщение();
		Письмо.Тема = ТемаПисьма;
		Письмо.Получатели.Добавить(БизнесПроцесс.АдресEmail);
		Для Каждого ФайлПечатнойФормы Из ФайлыПечатныхФорм Цикл
			Письмо.Вложения.Добавить(ПолучитьИзВременногоХранилища(ФайлПечатнойФормы.АдресВоВременномХранилище),
									 ФайлПечатнойФормы.Представление);	
		КонецЦикла; 
		
		УчетнаяЗапись = РаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
		РаботаСПочтовымиСообщениями.ОтправитьПисьмо(УчетнаяЗапись, Письмо);
		
	Исключение
		ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не удалось автоматически отправить копию справки на почту'"));		
	КонецПопытки;

Показать
3. vechiy 35 23.03.24 23:01 Сейчас в теме
(2) в моей УТ 11.0 не работает увы

РаботаСПочтовымиСообщениями.ОтправитьСообщение(ПочтаОтправителя, ПараметрыПисьма) -
вот как в параметры письма правильно запихнуть вложение?
есть конкретный адрес на диске "D:\test\test.txt"
как отправить?
5. Sashares 34 24.03.24 14:18 Сейчас в теме
(3)Передать файл во временное хранилище сначала. Очевидно же.
Как дальше действовать - пример выше.
Файл же у вас на компе клиента, а отправка выполняется с сервера.
Клиент-серверная же база.
8. Farhat95 25.03.24 09:50 Сейчас в теме
(3)
ПутьКаталога = "D:\test\test.txt" ;
	ФайлыЗагрузки = НайтиФайлы(ПутьКаталога,"*.txt");
	Если ФайлыЗагрузки<>0 Тогда
		Для Каждого Файл из ФайлыЗагрузки Цикл
			Сообщение.Вложения.Добавить(Файл.ПолноеИмя);
		КонецЦикла; 
		УдалитьФайлы(ПутьКаталога,"*.xls");	
	КонецЕсли;
9. Farhat95 25.03.24 09:51 Сейчас в теме
(8)Я так добавляю. Но добавляются все файлы из каталога у которых расширение TXT.
4. karamazoff 96 24.03.24 11:39 Сейчас в теме
тогда вот способ не зависящий от конфигурации
	//Создаем профиль либо считываем из справочника
		Профиль = Новый ИнтернетПочтовыйПрофиль;
		Профиль.АдресСервераSMTP = "smtp.mail.ru"; //"smtp.mail.ru";
		Профиль.АдресСервераPOP3 = ""; //"pop.mail.ru"; 
		Профиль.АдресСервераIMAP = "imap.mail.ru";
		Профиль.ПортPOP3 = 0; //110;
		Профиль.ПортIMAP = 993;
		Профиль.ПортSMTP = 465; //465;
		Профиль.Пользователь = "";
		Профиль.Пароль = "";
		Профиль.ПользовательSMTP = "1111111111@mail.ru"; 
		Профиль.ПользовательIMAP = "1111111111@mail.ru";
		Профиль.ПарольSMTP = "*********";
		Профиль.ПарольIMAP = "**********";
		Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
		Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
		Профиль.POP3ПередSMTP = Ложь;
		Профиль.ТолькоЗащищеннаяАутентификацияIMAP = ложь;
		Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = ложь;
		Профиль.ТолькоЗащищеннаяАутентификацияSMTP = ложь; 
		Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Авто;
		Профиль.ИспользоватьSSLIMAP = Истина;
		Профиль.ИспользоватьSSLSMTP = Истина;
		Профиль.ИспользоватьSSLPOP3 = Ложь;
		

		//Создаем письмо
		Почта = Новый ИнтернетПочта;
		Письмо = Новый ИнтернетПочтовоеСообщение;
		Текст = Письмо.Тексты.Добавить(ошибки);
		Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
		Письмо.Тема = Тема;
		Письмо.Отправитель = "11111111@mail.ru";
		Письмо.ИмяОтправителя = "test";
		Письмо.Получатели.Добавить("222222222@mail.ru");
		Письмо.Копии.Добавить("33333333@mail.ru");
		Письмо.Вложения.Добавить(Файл); //добавляем вложение если нужно, например "C:\Приложение.doc"
		//Вложений можно добавлять сколько требуется.

		//Отправляем письмо
		Попытка
		   Почта.Подключиться(Профиль);
		   Почта.Послать(Письмо);
		Исключение
		   Сообщить(ОписаниеОшибки());
		КонецПопытки;

		//Закрываем письмо
		Почта.Отключиться();
		//Закрываем файл вложения
		//Письмо.Вложения.Очистить();		
			

Показать
6. vechiy 35 24.03.24 20:00 Сейчас в теме
(4) как раз необходимо уйти от этого способа и использовать РаботаСПочтовымиСообщениями.ОтправитьСообщение
7. vechiy 35 24.03.24 20:17 Сейчас в теме
вот так делаю:
	ВременноеХранилищеФайла = ПоместитьВоВременноеХранилище("D:\test.txt");
 	Вложения = Новый Массив;
    ОписаниеВложения = Новый Структура("Представление, АдресВоВременномХранилище", "тест", ВременноеХранилищеФайла);
    Вложения.Добавить(ОписаниеВложения);	
	
	ПараметрыПисьма.Вставить("Вложения", Вложения);


получаю ошибку:

{ОбщийМодуль.ЭлектроннаяПочта.Модуль(62)}: Поле объекта не обнаружено (Значение)

неправильно формирую структуру? или что?
10. romulanin 25.03.24 10:26 Сейчас в теме
(7)
Вложения

ВременноеХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьФайла));
				ВложенияФайлы = Новый Массив;
				ВложениеСтруктура = Новый Структура;
				ВложениеСтруктура.Вставить("Представление",текстПисьма + ".XLS");
				ВложениеСтруктура.Вставить("АдресВоВременномХранилище",ВременноеХранилище);
				ВложенияФайлы.Добавить(ВложениеСтруктура);
11. VmvLer 25.03.24 10:27 Сейчас в теме
(7) варианты решения
- В СП поискать "ИнтернетПочтовыеВложения"
- почитать справку о методе "Добавить"
- привести свой полный код метода отправки сообщения, там не километры воды
- использовать типовой метод (2)
12. Vadim-SH 25.03.24 10:54 Сейчас в теме
используй функцию РаботаСПочтовымиСообщениями.ПодготовитьПисьмо()
или посмотри пример в РаботаСПочтовымиСообщениямиСлужебный.ПодготовитьПисьмо()
13. ElGatoGris 25.03.24 11:50 Сейчас в теме
У меня так
Получатели = Новый Массив;
		
Получатели.Добавить(Новый Структура("Адрес, Представление", Получатель.Почта, Получатель.Пользователь));

Вложения = Новый Массив;
Для Каждого Файл Из ФайлыПолучателя Цикл
			
	ИмяФайла  = Файл["ИмяФайла"];
	ПутьФайла = Файл["ПутьФайла"];
			
	ДвойчныеДанные = Новый ДвоичныеДанные(ПутьФайла);
	АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвойчныеДанные);
		
	Вложение = Новый Структура("Представление, АдресВоВременномХранилище");
		
	Вложение["Представление"] = ИмяФайла;
	Вложение["АдресВоВременномХранилище"] = АдресВоВременномХранилище;
		
	Вложения.Добавить(Вложение);
			
КонецЦикла;
		
ТекстПисьма = "Текст письма";

ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("УчетнаяЗапись", УчетнаяЗаписьПочты);
ПараметрыПисьма.Вставить("Кому", Получатели);
ПараметрыПисьма.Вставить("Тема", "Тема письма");
ПараметрыПисьма.Вставить("Тело", ТекстПисьма);
ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
ПараметрыПисьма.Вставить("Вложения", Вложения);

РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗаписьПочты, ПараметрыПисьма);
Показать
14. karamazoff 96 25.03.24 16:14 Сейчас в теме
типовое из ут11

		ПараметрыПисьма = Новый Структура();
		ПараметрыПисьма.Вставить("Тема", Сообщение.Тема);
		ПараметрыПисьма.Вставить("Вложения", Новый Соответствие);
		Для каждого Вложение Из Сообщение.Вложения Цикл
			НовоеВложение = Новый Структура("ДвоичныеДанные, Идентификатор");
			НовоеВложение.ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище);
			НовоеВложение.Идентификатор = Вложение.Идентификатор;
			ПараметрыПисьма.Вложения.Вставить(Вложение.Представление, НовоеВложение);
		КонецЦикла;
		ПараметрыПисьма.Вставить("Тело", Сообщение.Текст);

Показать


подробнее уже некуда
15. VmvLer 25.03.24 16:35 Сейчас в теме
(14) у автора "в моей УТ 11.0"

что-то там было с почтовыми методами хз.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот