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 System.Net.Mail. 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.
//=======================================================================
// Set_SSNM_BodyPart_VCalendar
//
// oMsg - the message to modify.
//
// sBody - can be any body - text, html, vcalendar.
//=======================================================================
public bool Set_SSNM_BodyPart_VCalendar(ref System.Net.Mail.MailMessage oMsg, string sVCalendar)
{
bool bRet = false;
bRet = AddMessageAlternateView(ref oMsg, sVCalendar, "text/calendar");
return bRet;
}
//============================================================================
// AddMessageAlternateView
//
// oMsg - the message to modify.
//
// sBody - can be any body - text, html, vcalendar.
//
// Content Types:
// Text: "text/plain"
// HTML: "text/html"
// VCalendar: "text/calendar"
//============================================================================
public bool AddMessageAlternateView(ref System.Net.Mail.MailMessage oMsg, string sBody, string sContentType)
{
bool bRet = false;
try
{
AlternateView avAlternateView = null;
System.Net.Mime.ContentType ctContentType = new System.Net.Mime.ContentType(sContentType);
avAlternateView = AlternateView.CreateAlternateViewFromString(sBody, ctContentType);
oMsg.AlternateViews.Add(avAlternateView);
bRet = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.InnerException.ToString(), "Error Adding Alternate View for \"" + sContentType + "\"", MessageBoxButtons.OK);
bRet = false;
}
return bRet;
}
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