Понравилась ли вам эта идея?
Поддерживаю, причем очень бы хотелось чтобы можно было отправить письмо "от системы", а не создавать активность E-mail от конкретного пользователя, что замусоривает ему активности.
То есть просто "пнуть" один раз письмо через преднастроеный почтовик. Сделать действие процесса с внятной формой:
Кому:
Тема:
Тело письма:
с возможностью заполнения этих полей из параметров процесса и его элементов или при желании заполнить их в коде, если нужны какие то вычисления.
Весьма было бы удобно.
Хочешь быстро и хорошо -- сделай сам!
Озаботился проблемой вплотную и меня посетило просветление!
Це ж доть неть, японский городовой! Тут собака и откопала мне кость и даже с кусочками мяса, потому что, как ни странно, всё работает! :smile:
[csharp]
var client = new SmtpClient("НАШ_ПОЧТОВЫЙ СЕРВЕР", ПОРТ);
var credential = new NetworkCredential("USER", "PASSWORD");
client.Credentials = credential;
var message = new MailMessage("ОТ КОГО", "КОМУ, "ТЕМА", "ТЕЛО ПИСЬМА");
client.Send(message);
[/csharp]
Не забываем подключать System.Net и System.Net.Mail
По необходимости используем, смысл прозрачен, я думаю:
[csharp]
client.EnableSsl = true;
message.IsBodyHtml = true;
[/csharp]
Для красоты и завершенности можно еще и так добавить (подключаем System.Text):
[csharp]
message.SubjectEncoding = Encoding.UTF8;
message.BodyEncoding = Encoding.UTF8;
[/csharp]
P.S. хватит из-за этой чешуи, как оказалось, терзать Terrasoft
В БП вы можете создать элемент типа Задание-сценарий и там все это написать.
Если параметры (от кого/кому отправить письмо, тема письма или само сообщение) у вас определяются по ходу выполнения процесса, то надо их при вычислении положить в параметры БП и в этом сценарии использовать.
не знаю, у меня ее нет, проверить не могу.
Но если там .Net, то должно.
Ок, сделал вроде всё правильно, однако на почту ничего не приходит
[csharp]
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);
[/csharp]
В MailTo записал e-mail ответственного...
Ну вот тут уже надо техническую поддержку спрашивать.
У вас on-demand редакция? Возможно просто порты закрыты.
если про это "ZKReminding", то я думаю надо именно адрес почты написать.
Да еще есть тонкость, письма уходят с сервера BPM, а не с вашего компьютера, поэтому все порты необходимые, чтобы послать почту через gmail, к примеру, должны быть открыты именно для сервера.
Александр, позволю себе ещё немного помучить Вас вопросами.
Как открыть эти (и как узнать какие именно) порты? Если письма отправляются в обычном режиме из активности, значит ли это, что порты уже открыты?
Действитеьно, ZKReminding нужно было указать в форме адреса. Теперь получаю предупреждение
Время ожидания операции истекло.
