a33ik и slivka_83, Ребят, большое Вам спасибо за Ваш труд и помощь.
Ответ на поставленный вопрос, можно ли отправлять уведомления на любой e-mail из CRM 4 - отправлять можно, но не все так просто.
Для чего это нужно было мне:
Обращения клиентов в компанию, попадают в CRM в виде обращений и вопросов c сайта компании. E-mail сохраняется в текстовом поле обращения. Затем обращение обрабатывается и необходимо было отправить ответ на указанный пользователем email.
Как реализовал:
После закрытия обращения, БП отправляет клиенту ответ технического специалиста.
По шагам:
1. В БП по закрытию обращения создается e-mail и заполняется по шаблону, в качестве адресата используется контакт без адресов эл. почты, если не указать адресата, будет ошибка.
2. Создал кастомный шаг БП, в который передаю созданное эл. сообщение и электронный ящик клиента(можно добавить ещё и передачу пользователя от которого осуществлять отправку).
3. В кастомном шаге БП происходит обновление адресата и отправителя. В компании несколько технических специалистов, поэтому нужно чтобы ответ отправлялся от адресата
noreply@company.com (другого пользователя). Отправка от имени другого пользователя возможна только при наличии прав на отправку почты от имени другого пользователя(Выбранная роль->Вкладка "Управление бизнесом" -> "Отправить электронную почту от имени другого пользователя").
Код:
IContextService contextService = (IContextService)executionContext.GetService(typeof(IContextService));
IWorkflowContext workflowContext = contextService.Context;
ICrmService crmservice = workflowContext.CreateCrmService();
email mail = new email();
//для обновления выбираем созданное сообщение на предыдущем шаге БП, который передали в этот шаг
mail.activityid = new Key(MailEntity.Value);
//Устанавливаем в качестве адресата, пользователя от имени которого будет производится отправка сообщения
activityparty fromparty = new activityparty();
fromparty.partyid = new Lookup();
fromparty.partyid.type = EntityName.systemuser.ToString();
fromparty.partyid.Value = new Guid("17DAC2B1-F35E-E211-AEA9-00155D010B02");
mail.from = new activityparty[] { fromparty };
//Устанавливаем контакт заглушку без адресов эл. почты
activityparty toparty = new activityparty();
toparty.partyid = new Lookup();
toparty.partyid.type = EntityName.contact.ToString();
toparty.partyid.Value = new Guid("A432DC4F-E8AB-DC11-94ED-000423AF733E");
//указываем адрес клиента, который передали в кастомный шаг БП
toparty.addressused = emailField;
mail.to = new activityparty[] { toparty };
crmservice.Update(mail);
//Отправка уведомления от имени другого пользователя и на указанный адрес эл. почты
SendEmailRequest sendrequest = new SendEmailRequest();
sendrequest.EmailId = mail.activityid.Value;
sendrequest.TrackingToken = "";
sendrequest.IssueSend = true;
crmservice.Execute(sendrequest);