Вопрос

Прикрепить вложения к письму

Добрый день! Прошу помочь со следующим кейсом:

В обращении при наступлении события X запускается бизнес-процесс и отправляется email. Необходимо прикрепись к нему все вложения с детали Файлы и ссылки.

Какие есть пути реализации? Заранее спасибо!

Нравится

6 комментариев
Лучший ответ

Посмотрите вот в этом посте описано решение для прикрепления файлов. Относительно ссылок - все зависит от того, в каком виде они у Вас хранятся и кому Вы их планируете отправлять. Можно отправлять либо в виде ссылок, либо, если нужно отправлять файлы, которые находятся по этой ссылке, то придется реализовать свой алгоритм, который будет скачивать файл по ссылке в темповую папку, а потом оттуда брать файл и прикреплять к письму.

Посмотрите вот в этом посте описано решение для прикрепления файлов. Относительно ссылок - все зависит от того, в каком виде они у Вас хранятся и кому Вы их планируете отправлять. Можно отправлять либо в виде ссылок, либо, если нужно отправлять файлы, которые находятся по этой ссылке, то придется реализовать свой алгоритм, который будет скачивать файл по ссылке в темповую папку, а потом оттуда брать файл и прикреплять к письму.

Реализовал отправку письма с вложением через задание-сценарий, однако отправляется только первое вложение, вместо двух.

Реализация следующая: создал активность типа Activity, заполнил обязательными для отправки письма полями, сохранил, создал несколько сущностей типа ActivityFile, ссылающихся на мою активность Activity, отправил письмо методом .Send(activityid) класса ActivityEmailSender. Тщательно продебажил метод, убедился что в собранном письме хранится коллекция из двух вложений.

Как мне отправить все вложения? Где я ошибся?

Кто-нибудь может подсказать почему выполняя отправку письма способом ниже из ActivityFile привязывается только один файл вложением, вместо двух?

var emailClientFactory = ClassFactory.Get<EmailClientFactory>(new ConstructorArgument("userConnection", UserConnection));
 
var activityEmailSender = new ActivityEmailSender(emailClientFactory, userConnection);
 
activityEmailSender.Send(activity.Id);

 

 

Отбой, все работает, одно из вложений блокировалось почтовым клиентом)

Алла Савельева, спасибо вам большое)

Омельянюк Михаил,

А можете, пожалуйста, поэтапно расписать, как Вы это реализовали?

В 7.17.1 добавится возможность без кода, действиями в БП манипулировать с файлами, находящимися на деталях, в том числе и формировать письма со вложениями.

Показать все комментарии