Send meeting notification from Dynamics CRM workflow -
i create workflow sends notification email, triggered "appointment created" event.
i want send meeting invitation (which accepted/rejected in outlook), not regular email, trick here?
create mail service message custom workflow activity , send via smtp :
develop custom workflow activity appropriate input parameters (start time, end time, smtp server name etc.) can configure map crm entity fields. in c# code, need generate ical event. reading , understanding ical spec , generating string manually in right format like this, or utilize library the dday.ical library. note, if utilize library, either need deploy dll in gac, or merge using ilmerge when build workflow activity. convert ical object string. send ical email via smtp (note, smtp won't work crm online sandbox, on premise) alter content type of mailmessage "text/calendar" message should arrive acceptable calendar in outlook display based on how have configured ical event properties. configure workflow activity against appropriate entity (appointment / service activity).sample approach in code below - note, not production ready. need understand ical properties want set , slot boilerplate workflow activity code accordingly.
// 3rd party libraries reference using dday.ical; using dday.ical.serialization.icalendar; ... ... // create ical iicalendar ical = new icalendar(); ical.method = "request"; ... ... ievent evt = ical.create<event>(); evt.summary = summary; evt.start = new icaldatetime(eventstartdt).settimezone(local); evt.end = new icaldatetime(eventenddt).settimezone(local); var serializer = new icalendarserializer(ical); var icalstring = serializer.serializetostring(ical); ... ... var mailmessage = new mailmessage { subject = summary.get(_executioncontext), = new mailaddress(fromemailaddress.get(_executioncontext)) }; // create alternate view object calendar mime type var ct = new system.net.mime.contenttype("text/calendar"); if (ct.parameters != null) ct.parameters.add("method", "request"); //provide framed string here alternateview avcal = alternateview.createalternateviewfromstring(icalstring, ct); mailmessage.alternateviews.add(avcal); // send email seek { smtpclient.send(mailmessage); } grab (exception ex) { // log it. } workflow dynamics-crm crm dynamics-crm-2013
No comments:
Post a Comment