Я создаю подписку на страницы на веб-сайте. Итак, будущий подписчик отправит сообщение через форму и будет добавлен в маркетинговый список в Dynamics 365 Online.
После запланированной работы на веб-сайте я делаю запрос контактов в маркетинговом списке.
Затем мне нужно отправить им электронное письмо о создании новой страницы с этими свойствами и ссылку на эту страницу.
Поэтому я хотел бы взять на себя эту ответственность Dynamics 365 Online.
Итак, я использую веб-API и действие: SendEmailFromTemplate. Не уверен, могу ли я использовать это действие или мне нужно создать настраиваемое действие.
Мне нужно будет передать такие данные, как URL-адрес страницы, заголовок и текст. Или всего одна строка - тело сообщения электронной почты, содержащее все это.
Итак, я создал шаблон электронной почты в CRM, и похоже, что код его находит!
Я думаю, что это действие, которое мне нужно: https://msdn.microsoft.com/en-us/library/mt607523.aspx
Если я проверю документацию в службе SOAP, на самом деле есть примеры: https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.sendemailfromtemplaterequest.aspx?cs-save-lang=1&
Но я собираюсь использовать веб-API.
Итак, я попробовал это:
dynamic regarding = new ExpandoObject();
var oppIndexer = regarding as IDictionary<string, Object>;
oppIndexer["contactid"] = contact.ContactId; //contact that will recive the
email.
oppIndexer["@odata.type"] = "Microsoft.Dynamics.CRM.contact";
dynamic target = new ExpandoObject();
var targetIndexer = target as IDictionary<string, Object>;
targetIndexer["torecipients"] = "[email protected]";
targetIndexer["sender"] = "[email protected]";
targetIndexer["inreplyto"] = "[email protected]";
targetIndexer["subject"] = "This is the subject";
targetIndexer["description"] = "This should be the body of the email";
targetIndexer["directioncode"] = true; //outgoing
targetIndexer["@odata.type"] = "Microsoft.Dynamics.CRM.email";
dynamic sendEmailFromTemplate = new ExpandoObject();
sendEmailFromTemplate.TemplateId = Guid.Parse("my-email-template-guid-inserted-here");
sendEmailFromTemplate.Regarding = regarding;
sendEmailFromTemplate.Target = target;
api.ExecuteAction("SendEmailFromTemplate", sendEmailFromTemplate);
Но я получаю исключение: «У электронного письма должен быть хотя бы один получатель, прежде чем оно может быть отправлено», когда я отправляю его.
В чем может быть проблема?
Я думаю, что документация по адресу: https://msdn.microsoft.com/en-us/library/mt607523.aspx
Просто объявите, что тип цели и относительно должен быть типа crmbaseentity. Базовый класс ...
Кто-нибудь знает, что может вызвать это?
Это объект электронной почты: https://msdn.microsoft.com/en-us/library/mt608007.aspx
Для поля «получателям» можно было бы читать: «Показывает адреса электронной почты, соответствующие получателям». Так что я не уверен, что мне следует использовать это поле. Если бы текст был «Получатели с», «разделитель, который получит сообщение», я был бы более уверен, что мне придется использовать это поле.
Обновление: Хорошо, вот что вы опубликовали:
{
"email_activity_parties": [
{ "[email protected]": "/systemusers(852a441c-b544-e611-80e3-c4346bc5e750)", "participationtypemask": 1 },
{ "[email protected]": "/systemusers(852a441c-b544-e611-80e3-c4346bc5e750)", "participationtypemask": 2 }
],
"description": "description lorem ipsum",
"subject": "rubrik",
"[email protected]": "/opportunities(e9e6eb64-9c4c-e611-80e4-c4346bc58294)"
}
Если бы я изменил это так, чтобы он соответствовал моим потребностям. Не думаю, что буду использовать возможности. Или я должен? Есть три параметра для действия SendEmailFromTemplate: https://msdn.microsoft.com/en-us/library/mt607523.aspx TemplateId, в отношении и цели. Я немного изменил этот код (непроверенный)
{
"TemplateId": "id-for-email-template",
"Regarding": [ { "[email protected]": "/contacts(contact-guid-X)" } ],
"Target": {
"email_activity_parties": [
{ "[email protected]": "/systemusers(systemuser-guid-Y)", "participationtypemask": 1 }, //1 is "sender"
{ "[email protected]": "/contacts(contact-guid-X)", "participationtypemask": 2 } // 2 is "to"
],
"description": "description lorem ipsum",
"subject": "rubrik",
"[email protected]": "/contacts(contact-guid-X)"
}
}
Я попробую что-то подобное ..