2010-04-16 6 views
9

C#의 ASP.NET MVC 1 프레임 워크를 사용하여 응용 프로그램을 만듭니다. 여기에 이벤트를 등록한 사용자가 있습니다. 등록시, 나는 모임 요청을 보낼C#의 MailMessage를 통한 Outlook 회의 요청 취소

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를 사용하여 Outlook 모임 요청을 만들 :

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); 

사용자가 Outlook에서 이메일을, 일반 전자 메일과 달리 모임 요청으로 표시됩니다.

이것은 모임 요청에 대한 업데이트를 보내는 데 적합합니다. 내가 가지고있는 유일한 문제는 내가 취소를 발송하기위한 적절한 형식을 모른다는 것입니다. 텍스트 편집기에서 일부 모임 요청 취소를 검토하려고 시도했지만 취소/작성 간의 형식 차이를 정확히 파악하지 못하는 것 같습니다.

이 문제에 대한 도움을 주시면 감사하겠습니다.

답변

5

RFC 2445에 따르면 당신은 내가 모임 요청에 그냥 상태 키워드를 사용하는 경우 있지만, 전망은 회의 편집으로 볼 때,이 도움이 STATUS:CANCELLED

+4

를 설정해야합니다. 나는 회의 추가를 통해 회의 취소를 보낼 수있었습니다. sw.AppendLine ("METHOD : CANCEL"); sw.AppendLine ("STATUS : CANCELLED"); 또한 취소 할 다른 MIME 형식을 추가해야했습니다. System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType ("text/calendar; method = CANCEL"); 감사합니다. – BTmuney

+2

@BTmuney 회의 취소를 보낸 후 일정에서 회의를 제거 했습니까? 이 작업을 시도하고 취소 작업을 보내지 만 Outlook의 기존 모임을 제거하지는 않습니다. –