![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
![]()
I have some code, referenced below which creates a MailMessage which is
really a meeting request because when it shows up in my Outlook I can accept/decline like with any other meeting request. This is great. However, now I am trying to add attachments to the MailMessage using the code commented below, when I do this, it successfully adds the attachment however when the email is received in Outlook it is no longer a meeting request I can accept/decline, instead it's just an email with the meeting information inside of it and the attachment attached. How do I programmatically attach the attachment while at the same time keeping the meeting request functionality? Or if this is the incorrect newsgroup, please point me to the correct one? Thanks public static MailMessage CreateMeetingRequest(DateTime start, DateTime end, string subject, string summary, string location, string organizerName, string organizerEmail, MailAddressCollection attendeeList, Attachment attachedFile, string fileName) { MailMessage msg = new MailMessage(); //add the attachment to the appointment, when added it shows up as a regular email and not the expected appointment like I thought it would if (attachedFile != null) { msg.Attachments.Add(attachedFile); } // Set up the different mime types contained in the message System.Net.Mime.ContentType textType = new System.Net.Mime.ContentType("text/plain"); System.Net.Mime.ContentType HTMLType = new System.Net.Mime.ContentType("text/html"); System.Net.Mime.ContentType calendarType = new System.Net.Mime.ContentType("text/calendar"); // Add parameters to the calendar header calendarType.Parameters.Add("method", "REQUEST"); calendarType.Parameters.Add("name", "meeting.ics"); // create the Body in text format string bodyText = "Type:Single Meeting\r\nOrganizer: {0}\r\nStart Time:{1}\r\nEnd Time:{2}\r\nTime Zone:{3}\r\nLocation: {4}\r\n\r\n*~*~*~*~*~*~*~*~*~*\r\n\r\n{5}"; bodyText = string.Format(bodyText, organizerName, start.ToLongDateString() + " " + start.ToLongTimeString(), end.ToLongDateString() + " " + end.ToLongTimeString(), System.TimeZone.CurrentTimeZone.StandardName, location, summary); AlternateView textView = AlternateView.CreateAlternateViewFromString(bodyTe xt, textType); LinkedResource lr = new LinkedResource(fileName); textView.LinkedResources.Add(lr); msg.AlternateViews.Add(textView); //create the Body in HTML format string bodyHTML = "!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"\r\nHTML\r\nHEAD\r\nMETA HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\"\r\nMETA NAME=\"Generator\" CONTENT=\"MS Exchange Server version 6.5.7652.24\"\r\nTITLE{0}/TITLE\r\n/HEAD\r\nBODY\r\n!-- Converted from text/plain format --\r\nPFONT SIZE=2Type:Single MeetingBR\r\nOrganizer:{1}BR\r\nStart Time:{2}BR\r\nEnd Time:{3}BR\r\nTime Zone:{4}BR\r\nLocation:{5}BR\r\nBR\r\n*~*~*~ *~*~*~*~*~*~*BR\r\nBR\r\n{6}BR\r\n/FONT\r\n/P\r\n\r\n/BODY\r\n/HTML"; bodyHTML = string.Format(bodyHTML, summary, organizerName, start.ToLongDateString() + " " + start.ToLongTimeString(), end.ToLongDateString() + " " + end.ToLongTimeString(), System.TimeZone.CurrentTimeZone.StandardName, location, summary); AlternateView HTMLView = AlternateView.CreateAlternateViewFromString(bodyHT ML, HTMLType); HTMLView.LinkedResources.Add(lr); msg.AlternateViews.Add(HTMLView); //create the Body in VCALENDAR format string calDateFormat = "yyyyMMddTHHmmssZ"; string bodyCalendar = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Micro soft CDO for Microsoft Exchange\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID ![]() (US & Canada)\r\nX-MICROSOFT-CDO-TZID:11\r\nBEGIN:STANDARD\r\nDTSTART:16010101T0200 00\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nRRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMON TH=11;BYDAY=1SU\r\nEND:STANDARD\r\nBEGIN ![]() ![]() ![]() bodyCalendar = string.Format(bodyCalendar, start.ToUniversalTime().ToString(calDateFormat), end.ToUniversalTime().ToString(calDateFormat), location, organizerName, organizerEmail, Guid.NewGuid().ToString("B"), summary, subject, DateTime.Now.ToUniversalTime().ToString(calDateFor mat), attendeeList); AlternateView calendarView = AlternateView.CreateAlternateViewFromString(bodyCa lendar, calendarType); calendarView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit; calendarView.LinkedResources.Add(lr); msg.AlternateViews.Add(calendarView); // Adress the message msg.From = new MailAddress(organizerEmail); foreach (MailAddress attendee in attendeeList) { msg.To.Add(attendee); } msg.Subject = subject; return msg; } |
Ads |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Programmatically add reminder (if missing) to meeting requests | JP[_2_] | Outlook and VBA | 8 | November 5th 07 06:30 PM |
Meeting requests received as plain text with attachments | Coops | Outlook - Calandaring | 5 | June 15th 07 07:03 PM |
create a rule to auto delete attachments on a meeting requests? | V-@pearson | Outlook - Calandaring | 1 | June 22nd 06 08:59 PM |
How to programmatically save all email attachments in a folder | Brian Beck | Outlook and VBA | 1 | April 20th 06 02:47 PM |
Deleting Attachments in Meeting Requests | [email protected] | Outlook - General Queries | 0 | March 30th 06 06:30 PM |