Ниже мы рассмотрим пример настройки процесса автоматической отправки письма с вложением с помощью бизнес-процесса. 

Для этого нам понадобятся два элемента процесса: “Обработать файл” и “Отправить Email”. 

Изображение удалено.Изображение удалено.

С помощью элемента процесса «Обработать файл» мы можем вычитать из детали «Файлы и ссылки» раздела необходимые файлы. Либо же получить этот файл из параметра процесса или сгенерировать отчет. 

В рамках этого элемента мы можем вычитанный файл использовать далее в процессе либо сохранить на деталь «Файлы и ссылки» другого раздела. 

В элементе процесса «Отправить Email», помимо стандартных настроек (От кого – Кому, и т.д.), нас интересует поле «Добавить вложение». 

Изображение удалено.



В данное поле мы и будем передавать полученный в элементе процесса «Обработать файл» файл в письмо. 

Перейдем к самому процессу. Например, нам необходимо отправить email с файлом, который находится в детали «Файлы и ссылки» из записи конкретного контакта.  

(о том как запустить процесс из раздела подробно тут

В элементе процесса «Обработать файл» мы указываем источник, откуда мы получаем файл. В нашем примере это деталь «Файлы и ссылки» объекта. 

После указываем этот самый объект: Файл и ссылка контакта, в нашем случае. 

Далее настраиваем фильтр для файла и указываем, как и по какой колонке сортировать записи. 

После выбираем какие действия мы будем выполнять далее с  отфильтрованным файлом: используем далее в процессе (наш вариант) или сохраняем на деталь «Файлы и ссылки» другого раздела. 

Изображение удалено.

Далее, в элементе «Отправить email» мы настраиваем все необходимые параметры (от кого, кому, письмо по шаблону или произвольное и т.д.). После чего в поле «Добавить вложение» мы можем указать файл вычитанный в элементе «Обработать файл». 

Изображение удалено.

Изображение удалено.

Во вложении архив с описанным процессом.

Прикрепленные файлы

Нравится

Поделиться

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

Добрый день!

Коллеги, может кто-то знает, как реализовать следующую задачу: надо по бизнес-процессу отправить письмо, к которому прикрепить файл из детали Файлы и примечания документа.

Спасибо

Нравится

1 комментарий

Добрый!

Ниже метод реализующий отправку E-mail с вложением, файл берется из детали файлы и ссылки раздела.

		public static bool SendMail(string mailto, string caption, string message, Guid FileId, string SchemaName, UserConnection userConn) {
			SchemaName+="File";
			string smtpServer = Terrasoft.Core.Configuration.SysSettings.GetValue(userConn, "SFsmtpServer").ToString();
			string from = Terrasoft.Core.Configuration.SysSettings.GetValue(userConn, "SFFrom").ToString();
			string password = Terrasoft.Core.Configuration.SysSettings.GetValue(userConn, "SFPassword").ToString();
			Stream FileA = null;
			string Fname = "";
			var esq = new EntitySchemaQuery(userConn.EntitySchemaManager, SchemaName);
			esq.AddAllSchemaColumns();
			esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Id",FileId));
			var coll = esq.GetEntityCollection(userConn);
			foreach(var ent in coll) {
				FileA = ent.GetStreamValue("Data");
				Fname = ent.GetTypedColumnValue<string>("Name");
				break;
			}
			try {
				MailMessage mail = new MailMessage();
				mail.From = new MailAddress(from);
				mail.To.Add(new MailAddress(mailto));
				mail.Subject = caption;
				mail.Body = message;
				mail.IsBodyHtml = true;
				if (FileA != null)
					mail.Attachments.Add(new Attachment(FileA, Fname));
				SmtpClient client = new SmtpClient();
				client.Host = smtpServer;
				client.Port = 587;
 
				client.EnableSsl = true;
				client.Credentials = new NetworkCredential(from.Split('@')[0], password);
				client.DeliveryMethod = SmtpDeliveryMethod.Network;
 
				client.Send(mail);
				mail.Dispose();
				return true;
			} catch(Exception e) {
				throw new Exception("Mail.Send: " + e.Message);
			}
		}
Показать все комментарии

Добрый день!!!

использую террасофт пресс 3.3.0.81. Стоит задача программно прикрепить файл к шаблону сообщений. Т.е на основании Шаблона сообщений программно создается письмо (здесь проблем нет), а вот далее требуется программно в данное письмо прикрепить файл в виде вложения. Подскажите пожалуйста в виде примера как данный вопрос можно решить. Спасибо!!!

Нравится

6 комментариев

Смотрите в сторону scr_MailUtils.
Если используете CreateNewMessage, то в параметрах вам надо передать параметр-массив Attachments с ссылками на файлы.

Добрый день Евгений!!!

начну с того что функции CreateNewMessage в scr_MailUtils у меня отсутствует. отправка сообщения происходит с помощью функции SendEmailByAddressesList(MailUtilsObject, TemplateID, AddressesList, Subject, ShowMessage) куда передается шаблон сообщений, список адресов. Шаблон создается в конфигурации. еще раз повторюсь мне нужно не просто создать сообщение и прикрепить к нему файл, а создать сообщение на основании "Шаблона сообщений" и прикрепить к данному письму файл.

Вы можете выслать текст скрипта scr_MailUtils? (у меня сейчас нет доступа к вашей версии). Скорее всего нужно просто расширить функцию SendEmailByAddressesList(MailUtilsObject, TemplateID, AddressesList, Subject, ShowMessage) и добавить параметр со списком аттачей.

высылаю скрипт scr_MailUtils. спасибо за помощь и понимания. буду ждать ответа.

Попробуйте этот вариант.
Вот код вызова:

...
	var Attachments = System.CreateObject('TSObjectLibrary.StringsList');
	Attachments.Add('Att.txt');
	Attachments.Add('Att1.txt');
	Attachments.Add('Att2.txt');
 
SendEmailByAddressesList(MailUtilsObject, TemplateID, AddressesList, Subject, ShowMessage, Attachments );

Работоспособность проверить не было возможности, но всё равно попробуйте.

Только перед проверкой ОБЯЗАТЕЛЬНО СОХРАНИТЕ ОРИГИНАЛЬНЫЙ scr_MailUtils.

PS
Если вы его забыли сохранить и зменения не заработали, то оригинал лежит тут, на форуме :):):):)

Чем всё закончилось?

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