Я создаю приложение с использованием структуры ASP.NET MVC 1 на C#, где у меня есть пользователи, которые регистрируются для событий. После регистрации, я создаю запрос перспективы встречиОтменить запросы на встречу с Outlook MailSmessage в C#
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);
Когда пользователи получают электронную почту в Outlook, он отображается как запрос на собрание, в отличие от обычной электронной почты.
Это хорошо работает и для отправки обновлений на запрос собрания. Единственная проблема, с которой я сталкиваюсь, заключается в том, что я не знаю подходящего формата для отправки отмены. Я попытался рассмотреть некоторые аннулирования запросов на собрание в текстовых редакторах и, похоже, не может определить разницу в формате между отменой/созданием.
Любая помощь на это очень ценится.
Это помогло, хотя, когда я только что статус ключевого слова в запросе на заседании, перспективы рассматривает это как встреча редактирования. Мне удалось отправить аннулирование собрания, добавив sw.AppendLine («МЕТОД: ОТМЕНА»); sw.AppendLine ("STATUS: CANCELED"); Также мне нужно было добавить еще один тип mime для отмены System.Net.Mime.ContentType mimeType = new System.Net.Mime.ContentType ("text/calendar; method = CANCEL"); Спасибо. – BTmuney
@BTmuney После отправки аннулирования встречи он также удалил собрание из календаря? Я пробовал это и его отмену работы и отправки, но не удаляет существующее собрание из календаря в Outlook. –