2010-04-16 3 views
9

में MailMessage के माध्यम से Outlook मीटिंग अनुरोधों को रद्द करें मैं सी # में एएसपी.नेट एमवीसी 1 ढांचे का उपयोग कर एक एप्लिकेशन बना रहा हूं, जहां मेरे पास ऐसे उपयोगकर्ता हैं जो ईवेंट के लिए पंजीकरण करते हैं। पंजीकरण के बाद, मैं एक दृष्टिकोण मीटिंग अनुरोधसी #

public string BuildMeetingRequest(DateTime start, DateTime end, string attendees, string organizer, string subject, string description, string UID, string location) 
    { 
     System.Text.StringBuilder sw = new System.Text.StringBuilder(); 

     sw.AppendLine("BEGIN:VCALENDAR"); 
     sw.AppendLine("VERSION:2.0"); 
     sw.AppendLine("METHOD:REQUEST"); 
     sw.AppendLine("BEGIN:VEVENT"); 
     sw.AppendLine(attendees); 
     sw.AppendLine("CLASS:PUBLIC"); 
     sw.AppendLine(string.Format("CREATED:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow)); 
     sw.AppendLine("DESCRIPTION:" + description); 
     sw.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", end)); 
     sw.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow)); 
     sw.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", start)); 
     sw.AppendLine("ORGANIZER;CN=\"NAME\":mailto:" + organizer); 
     sw.AppendLine("SEQUENCE:0"); 
     sw.AppendLine("UID:" + UID); 
     sw.AppendLine("LOCATION:" + location); 
     sw.AppendLine("SUMMARY;LANGUAGE=en-us:" + subject); 
     sw.AppendLine("BEGIN:VALARM"); 
     sw.AppendLine("TRIGGER:-PT720M"); 
     sw.AppendLine("ACTION:DISPLAY"); 
     sw.AppendLine("DESCRIPTION:Reminder"); 
     sw.AppendLine("END:VALARM"); 
     sw.AppendLine("END:VEVENT"); 
     sw.AppendLine("END:VCALENDAR"); 

     return sw.ToString(); 
    } 

और एक बार बनाया गया है, मैं MailMessage उपयोग करते हैं, एक वैकल्पिक दृश्य के साथ मीटिंग अनुरोध भेजने के लिए बनाने के लिए:

meetingInfo = BuildMeetingRequest(start, end, attendees, organizer, subject, description, UID, location);   

     System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType("text/calendar; method=REQUEST"); 
     AlternateView ICSview = AlternateView.CreateAlternateViewFromString(meetingInfo,mimeType); 
     MailMessage message = new MailMessage(); 

     message.To.Add(to); 
     message.From = new MailAddress(from); 
     message.AlternateViews.Add(ICSview); 

     SmtpClient client = new SmtpClient(); 
     client.Send(message); 

जब उन दृष्टिकोण में ईमेल प्राप्त हो, यह एक सामान्य ईमेल के विपरीत, एक मीटिंग अनुरोध के रूप में दिखाई देता है।

यह मीटिंग अनुरोध के अपडेट भी भेजने के लिए अच्छा काम करता है। मेरे पास एकमात्र समस्या यह है कि मुझे रद्दीकरण भेजने के लिए उचित प्रारूप नहीं पता है। मैंने पाठ संपादकों में कुछ मीटिंग अनुरोध रद्दीकरण की जांच करने का प्रयास किया है और रद्द/निर्माण के बीच प्रारूप में अंतर को इंगित नहीं कर सकता।

इस पर किसी भी मदद की सराहना की जाती है।

उत्तर

5

RFC 2445 के अनुसार तुम सिर्फ STATUS:CANCELLED

+4

इससे निर्धारित करने की आवश्यकता है, हालांकि जब मैं मीटिंग अनुरोध में सिर्फ इतना है कि स्थिति कीवर्ड का इस्तेमाल किया, दृष्टिकोण एक बैठक संपादित के रूप में यह देखता है। मैं sw.AppendLine ("विधि: कैंसल") जोड़कर मीटिंग रद्दीकरण भेजना चाहता था; sw.AppendLine ("स्थिति: रद्द"); इसके अलावा, मुझे रद्दीकरण System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType ("टेक्स्ट/कैलेंडर; विधि = कैंसल") के लिए एक और माइम प्रकार जोड़ने की आवश्यकता है; धन्यवाद। – BTmuney

+2

@BTmuney मीटिंग रद्दीकरण भेजने के बाद, क्या यह कैलेंडर से मीटिंग को भी हटा देता है? मैंने इसे और उसके काम करने और रद्दीकरण भेजने की कोशिश की लेकिन यह कैलेंडर से मौजूदा बैठक को दृष्टिकोण में नहीं हटाता है। –