Ich baue ein Abonnement für Seiten auf einer Website. So kann ein Abonnent über ein Formular posten und zu einer Marketing-Liste in Dynamics 365 Online hinzugefügt werden.Dynamics 365 Web API E-Mail senden
Von einem geplanten Job auf der Website mache ich dann eine Anfrage der Kontakte in einer Marketing-Liste.
Dann muss ich ihnen eine E-Mail senden, dass eine neue Seite mit diesen Eigenschaften und einem Link zu dieser Seite erstellt wurden.
Also ich möchte diese Verantwortung Dynamics 365 Online machen.
Also ich benutze die Web-API und die Aktion: SendEmailFromTemplate Nicht sicher, ob ich diese Aktion verwenden kann oder wenn ich eine benutzerdefinierte Aktion erstellen muss.
Ich müsste Daten wie URL der Seite, Titel und Text übergeben. Oder nur eine Zeichenfolge - der Text der E-Mail-Nachricht, die all dies enthält.
Also ich habe eine E-Mail-Vorlage im CRM erstellt und es semse wie der Code findet es!
Dies ist die Aktion Ich glaube, ich bin nach: https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.sendemailfromtemplaterequest.aspx?cs-save-lang=1&
aber ich werde mit dem Web-API: https://msdn.microsoft.com/en-us/library/mt607523.aspx
Wenn ich die Dokumentation auf dem SOAP-Service überprüfe tatsächlich Beispiele gibt es .
Also habe ich versucht, dies:
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);
Aber ich Ausnahme erhalten: „Die E-Mail mindestens einen Empfänger haben muss, bevor sie gesendet werden können,“ wenn ich es posten.
Was könnte das Problem sein?
ich denke, die Dokumentation an: https://msdn.microsoft.com/en-us/library/mt607523.aspx
nur erklären, dass der Typ für Ziel und bezüglich des Typs „crmbaseentity“ sein sollte. Eine Basisklasse ...
Wer weiß, was das verursachen könnte?
Dies ist der E-Mail-Entity: https://msdn.microsoft.com/en-us/library/mt608007.aspx
für das Feld „torecipients“ man lesen können: „Zeigt die E-Mail-Adressen an die Empfänger entsprechend“. Also ich bin mir nicht sicher, dass das das Feld ist, das ich verwenden sollte. Wenn der Text wäre "Die Empfänger mit", "Trennzeichen, das die Nachricht erhalten wird" wäre ich sicherer, dass ich dieses Feld verwenden müsste.
Update: Okey, so ist es das, was Sie auf dem Laufenden:
{
"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)"
}
Wenn ich würde das so zu ändern, es mein Bedürfnis entspricht. Ich glaube nicht, dass ich Gelegenheiten nutzen werde. Oder muss ich? Es gibt drei Parameter für SendEmailFromTemplate Action: https://msdn.microsoft.com/en-us/library/mt607523.aspx TemplateId, In Bezug und Ziel.Ich änderte den Code ein bisschen unter (ungetestet)
{
"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)"
}
}
Ich werde so etwas wie dies ausprobieren ..
Ich muss @ odata.type setzen ich denke ... –