在C#中移除Outlook会议请求

时间:2017-01-25 09:27:50

标签: c# outlook

我正在用C#创建一个应用程序。在此我可以创建一个会议请求,通过代码发送给用户并显示在Outlook邮件中。

以下代码是我用来发送会议邀请的代码。它工作正常。

StringBuilder OutlookBody = new StringBuilder();
string textvs = @"BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN
VERSION:1.0
BEGIN:VEVENT
LOCATION:" + Location + @"
DTSTART:" + string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", start) + @"
DTEND:" + string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", end) + @"
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:= " + OutlookBody + @"=0D=0A SUMMARY:" + AppoitmentName + @"
PRIORITY:3
END:VEVENT
END:VCALENDAR";

如何使用相同的代码删除Outlook会议请求。

我还检查了this回答,但它没有解决我的问题。

4 个答案:

答案 0 :(得分:2)

在OutLook中,每个约会/会议都将获得唯一的ID和ChangeKey。只要对会议进行了修改,就会生成新的ChangeKey。要更新现有会议,您必须拥有Id和最新的ChangeKey。

在你的方法中,如果我没有错,你只是在构建一个通过电子邮件添加到outlook中的ICAL。在这种情况下,您将无法使用Id和ChangeKey以编程方式修改会议。我宁愿建议你改变方法。

如果您有Microsoft Exchange,则会指导以下链接。否则,请忽略链接。

https://msdn.microsoft.com/en-us/library/office/dn495611(v=exchg.150).aspx https://msdn.microsoft.com/en-us/library/office/dn495612(v=exchg.150).aspx

答案 1 :(得分:2)

您可以通过添加以下行来设置会议的方法和状态:

METHOD: CANCEL

STATUS: CANCELLED

查看更多here

答案 2 :(得分:0)

使用以下代码

active

并使用以下Mime类型

StringBuilder OutlookBody = new StringBuilder();
string textvs = @"BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN
VERSION:1.0
BEGIN:VEVENT
LOCATION:" + Location + @"
DTSTART:" + string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", start) + @"
DTEND:" + string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", end) + @"
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:= " + OutlookBody + @"=0D=0A SUMMARY:" + AppoitmentName + @"
PRIORITY:3
METHOD:CANCEL
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR";

答案 3 :(得分:0)

我通过更改代码中的某些行解决了这个问题。

  1. 将方法从REQUEST更改为CANCEL ==> str.AppendLine("METHOD:CANCEL");

  2. Status更改为Cancelled ==> str.AppendLine("STATUS:CANCELLED");

  3. System.Net.Mime.ContentType contype = newSystem.Net.Mime.ContentType("text/calendar");中,将方法从REQUEST更改为CANCEL ==> contype.Parameters.Add("method", "CANCEL");