Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The sample below shows how to add an additional body part to a message using cdosys. This example demonstrates adding a "text/calendar" (vcalendar) body part, however it should be possible to use this to add "text/plain", "text/html" and other types. In the sample, "this.VCalendarText" holds the text to be written to the body part (in this case its a VCalendar meeting request.
//============================ VCalendar ==============================
if (this.AddVCalendar == true)
{
oMsg.BodyPart.ContentClass = this.ContentClass;
oMsg.BodyPart.ContentMediaType = this.ContentType;
CDO.IBodyPart iBpVCalendar = oMsg.BodyPart.AddBodyPart(-1);
//oMsg.BodyPart.Fields["urn:schemas:mailheader:content-type"].Value = "multipart/alternative";
iBpVCalendar.ContentClass = "urn:content-classes:calendarmessage";
iBpVCalendar.Fields["urn:schemas:mailheader:content-type"].Value = "text/calendar;method=REQUEST;name=\"meeting.ics\"";
iBpVCalendar.Fields["urn:schemas:mailheader:content-transfer-encoding"].Value = "8bit";
iBpVCalendar.Fields.Update();
// ---------- Write VCALENDAR -------------------------
ADODB.Stream stm = null;
stm = iBpVCalendar.GetDecodedContentStream();
//stm.Write(this.VCalendarText);
stm.WriteText(this.VCalendarText, ADODB.StreamWriteEnum.stWriteLine);
stm.Flush();
stm.Close();
oMsg.BodyPart.Fields.Update();
// ---------- Clean-up -------------------------
System.Runtime.InteropServices.Marshal.ReleaseComObject(iBpVCalendar);
System.Runtime.InteropServices.Marshal.ReleaseComObject(stm);
iBpVCalendar = null;
stm = null;
}
Here is an example of what might be written to the body part. Please note that sending meeting requests with a custom created VCALENDAR is not supported, however I'm including this for completeness.
Content-class: urn:content-classes:calendarmessage
Content-Type: text/calendar;
method=REQUEST;
name="meeting.ics"
Content-Transfer-Encoding: 8bit
BEGIN:VCALENDAR
METHOD:REQUEST
BEGIN:VEVENT
DTSTAMP:20080325T202857Z
DTSTART:20080325T200000Z
DTEND:20080325T220000Z
SUMMARY:Test meeting request
UID:040000008200E00074C5B7101A82E00800000000B2BB07349575C80100000000000000001000000019BF8D0149C50643A81325C54140C093
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN="Myf":MAIL
TO:myfriend@myserver.mycompany.com
ORGANIZER;CN="Me Myself":MAILTO:memyself@myserver.mycompany.com
LOCATION: Here
DESCRIPTION:Test Request\N
SEQUENCE:0
PRIORITY:5
CLASS:
CREATED:20080321T190958Z
STATUS:CONFIRMED
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR