Идея
Реализована

Отправка e-mail в БП (BPMonline)

Часто сталкиваемся с необходимостью автоматической отправки e-mail в бизнес-процессе. Функционал очень полезный - думаю, стОит его добавить в стандартный набор. На данный момент реализация посредством манипуляций с исходным кодом довольно неудобна.
17 комментариев

Поддерживаю, причем очень бы хотелось чтобы можно было отправить письмо "от системы", а не создавать активность E-mail от конкретного пользователя, что замусоривает ему активности.

То есть просто "пнуть" один раз письмо через преднастроеный почтовик. Сделать действие процесса с внятной формой:
Кому:
Тема:
Тело письма:

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

Весьма было бы удобно.

Хочешь быстро и хорошо -- сделай сам!
Озаботился проблемой вплотную и меня посетило просветление!
Це ж доть неть, японский городовой! Тут собака и откопала мне кость и даже с кусочками мяса, потому что, как ни странно, всё работает! :smile:

var client = new SmtpClient("НАШ_ПОЧТОВЫЙ СЕРВЕР", ПОРТ);
 
var credential = new NetworkCredential("USER", "PASSWORD");
client.Credentials = credential;
 
var message = new MailMessage("ОТ КОГО", "КОМУ, "ТЕМА", "ТЕЛО ПИСЬМА");
 
 client.Send(message);

Не забываем подключать System.Net и System.Net.Mail
По необходимости используем, смысл прозрачен, я думаю:

client.EnableSsl = true;
message.IsBodyHtml = true;

Для красоты и завершенности можно еще и так добавить (подключаем System.Text):

message.SubjectEncoding = Encoding.UTF8;
message.BodyEncoding = Encoding.UTF8;

P.S. хватит из-за этой чешуи, как оказалось, терзать Terrasoft

Товарисчь, поделитесь пожалуйста, куда все эти букафки вбивать.

В БП вы можете создать элемент типа Задание-сценарий и там все это написать.
Если параметры (от кого/кому отправить письмо, тема письма или само сообщение) у вас определяются по ходу выполнения процесса, то надо их при вычислении положить в параметры БП и в этом сценарии использовать.

Спасибо. Кстати, в 7-ке тоже работает?

не знаю, у меня ее нет, проверить не могу.
Но если там .Net, то должно.

Я имел ввиду CRM 7:smile:

Подскажите как корректно подключить сборки System.Net и System.Net.Mail.
Судя по всему

using System.Net;
using System.Net.Mail;

в теле задания-сценария не работает.

В дизайнере процесса справа поищите
Usings

Ок, сделал вроде всё правильно, однако на почту ничего не приходит

var client = new SmtpClient("smtp.gmail.com", 465);
var credential = new NetworkCredential("xxx@xxxx.xx", "xxxxxx");
client.Credentials = credential;
 
var message = new MailMessage("ZKReminding", MailTo, "Theme", "Body");
message.SubjectEncoding = Encoding.UTF8;
message.BodyEncoding = Encoding.UTF8;
client.Send(message);

В MailTo записал e-mail ответственного...

И да, делаю в BPMonline CRM 7

Ну вот тут уже надо техническую поддержку спрашивать.
У вас on-demand редакция? Возможно просто порты закрыты.

У меня on-site. Через активности всё отправляется нормально...

client.EnableSsl = true;

забыли

Александр, не помогло.

Попробовал реализвать в 5.4 - там система выдаёт подсказку:

Форма указанной строки не годится для адреса электронной почты

Вот уж непонятно - чего ей не нравится...вроде стандартный формат...

если про это "ZKReminding", то я думаю надо именно адрес почты написать.
Да еще есть тонкость, письма уходят с сервера BPM, а не с вашего компьютера, поэтому все порты необходимые, чтобы послать почту через gmail, к примеру, должны быть открыты именно для сервера.

Александр, позволю себе ещё немного помучить Вас вопросами.
Как открыть эти (и как узнать какие именно) порты? Если письма отправляются в обычном режиме из активности, значит ли это, что порты уже открыты?

Действитеьно, ZKReminding нужно было указать в форме адреса. Теперь получаю предупреждение

Время ожидания операции истекло.

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