如何以编程方式取消使用asp.net VB的Outlook会议?

杰里米·多特(Jeremy Dodt)

我可以以编程方式创建会议请求,该会议请求通过代码发送给用户,并显示在Outlook邮件中,用户可以在其中接受请求,如果接受,约会将显示在其Outlook日历上。但在弄清楚如何以编程方式取消同一事件时遇到了麻烦。

以下代码是我用来发送会议邀请的代码。它可以正常工作,并将请求发送给收件人,他们可以接受或拒绝。如果接受,约会将在他们的日历上进行。

 Dim smtpServer As String = ConfigurationManager.AppSettings("MailServer").ToString()
 Dim credentials As New NetworkCredential(ConfigurationManager.AppSettings("SMTPUser").ToString(), ConfigurationManager.AppSettings("SMTPPassword").ToString())

 Dim startTime1 As String = Convert.ToDateTime("10/30/2015 11:00 AM").ToString("yyyyMMddTHHmmss")
 Dim endTime1 As String = Convert.ToDateTime("10/30/2015 01:00 PM").ToString("yyyyMMddTHHmmss")
 Dim smtp As New SmtpClient(smtpServer)
 smtp.Credentials = credentials

 Dim msg As New MailMessage()
 Dim emailFrom As String = ConfigurationManager.AppSettings("EmailFrom").ToString()
 Dim emailTo As String = "[email protected]"
 msg.From = New MailAddress(emailFrom, "Scheduling System")
 msg.[To].Add(New MailAddress(emailTo))
 msg.Subject = "JD"

 Dim strBody As New StringBuilder()
 strBody.AppendLine("Appointment Confirmation")
 strBody.AppendLine("Subject: JD")
 strBody.AppendLine("1599")
 strBody.AppendLine("Location: Exam 1")
 strBody.AppendLine("Date: 10/30/2015")
 strBody.AppendLine("Time: 11:00AM - 1:00PM")

 msg.Body = strBody.ToString()

 Dim str As New StringBuilder()
 str.AppendLine("BEGIN:VCALENDAR")

 'PRODID: identifier for the product that created the Calendar object
 str.AppendLine("PRODID:-//CARS//Outlook MIMEDIR//EN")
 str.AppendLine("VERSION:2.0")
 str.AppendLine("METHOD:REQUEST")

 str.AppendLine("BEGIN:VEVENT")

 str.AppendLine(String.Format("DTSTART:{0:yyyyMMddTHHmmss}", startTime1))
 'TimeZoneInfo.ConvertTimeToUtc("BeginTime").ToString("yyyyMMddTHHmmssZ")));
 str.AppendLine(String.Format("DTSTAMP:{0:yyyyMMddTHHmmss}", DateTime.Now))
 str.AppendLine(String.Format("DTEND:{0:yyyyMMddTHHmmss}", endTime1))       
 'TimeZoneInfo.ConvertTimeToUtc("EndTime").ToString("yyyyMMddTHHmmssZ")));
 str.AppendLine(String.Format("LOCATION:{0}", "Exam 1"))

 ' UID should be unique.
 str.AppendLine(String.Format("UID:{0}", "jd101"))
 str.AppendLine(String.Format("DESCRIPTION:{0}", msg.Body))
 str.AppendLine(String.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", msg.Body))
 str.AppendLine(String.Format("SUMMARY:{0}", msg.Subject))

 str.AppendLine("STATUS:CONFIRMED")
 str.AppendLine("BEGIN:VALARM")
 str.AppendLine("TRIGGER:-PT15M")
 str.AppendLine("ACTION:Accept")
 str.AppendLine("DESCRIPTION:Reminder")
 str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY")
 str.AppendLine("END:VALARM")
 str.AppendLine("END:VEVENT")

 str.AppendLine(String.Format("ORGANIZER:MAILTO:{0}", msg.From.Address))
 str.AppendLine(String.Format("ATTENDEE;CN=""{0}"";RSVP=TRUE:mailto:{1}", msg.[To](0).DisplayName, msg.[To](0).Address))

 str.AppendLine("END:VCALENDAR")
 Dim ct As New System.Net.Mime.ContentType("text/calendar")
 ct.Parameters.Add("method", "REQUEST")
 ct.Parameters.Add("name", "meeting.ics")
 Dim avCal As AlternateView = AlternateView.CreateAlternateViewFromString(str.ToString(), ct)
 msg.AlternateViews.Add(avCal)
 smtp.Send(msg)

以下代码是我必须取消现有会议的代码。就像上面的代码一样,它发出通知,但不会取消/删除/删除会议。有人可以指出我正确的方向。我希望在运行这部分代码后将事件从Outlook日历中删除。谢谢你的帮助。

Dim smtpServer As String = ConfigurationManager.AppSettings("MailServer").ToString()
Dim credentials As New NetworkCredential(ConfigurationManager.AppSettings("SMTPUser").ToString(), ConfigurationManager.AppSettings("SMTPPassword").ToString())

Dim startTime1 As String = Convert.ToDateTime("10/30/2015 11:00 AM").ToString("yyyyMMddTHHmmss")
Dim endTime1 As String = Convert.ToDateTime("10/30/2015 01:00 PM").ToString("yyyyMMddTHHmmss")
Dim smtp As New SmtpClient(smtpServer)
smtp.Credentials = credentials

Dim msg As New MailMessage()
Dim emailFrom As String = ConfigurationManager.AppSettings("EmailFrom").ToString()
Dim emailTo As String = "[email protected]"
msg.From = New MailAddress(emailFrom, "Scheduling System")
msg.[To].Add(New MailAddress(emailTo))
msg.Subject = "JD"

Dim strBody As New StringBuilder()
strBody.AppendLine("Appointment Confirmation")
strBody.AppendLine("Subject: JD")
strBody.AppendLine("HRPO#: 1599")
strBody.AppendLine("Location: Exam 1")
strBody.AppendLine("Date: 10/30/2015")
strBody.AppendLine("Time: 11:00AM - 1:00PM")

msg.Body = strBody.ToString()

Dim str As New StringBuilder()
str.AppendLine("BEGIN:VCALENDAR")

'PRODID: identifier for the product that created the Calendar object
str.AppendLine("PRODID:-//CARS//Outlook MIMEDIR//EN")
str.AppendLine("VERSION:2.0")
str.AppendLine("METHOD:REQUEST")

str.AppendLine("BEGIN:VEVENT")

str.AppendLine(String.Format("DTSTART:{0:yyyyMMddTHHmmss}", startTime1))
'TimeZoneInfo.ConvertTimeToUtc("BeginTime").ToString("yyyyMMddTHHmmssZ")));
str.AppendLine(String.Format("DTSTAMP:{0:yyyyMMddTHHmmss}", DateTime.Now))
str.AppendLine(String.Format("DTEND:{0:yyyyMMddTHHmmss}", endTime1))
'TimeZoneInfo.ConvertTimeToUtc("EndTime").ToString("yyyyMMddTHHmmssZ")));
str.AppendLine(String.Format("LOCATION:{0}", "Exam 1"))

' UID should be unique.
str.AppendLine(String.Format("UID:{0}", "jd101"))
str.AppendLine(String.Format("DESCRIPTION:{0}", msg.Body))
str.AppendLine(String.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", msg.Body))
str.AppendLine(String.Format("SUMMARY:{0}", msg.Subject))

str.AppendLine("STATUS:CANCELLED")
str.AppendLine("BEGIN:VALARM")
str.AppendLine("TRIGGER:-PT15M")
str.AppendLine("ACTION:Accept")
str.AppendLine("DESCRIPTION:Reminder")
str.AppendLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY")
str.AppendLine("END:VALARM")
str.AppendLine("END:VEVENT")

str.AppendLine(String.Format("ORGANIZER:MAILTO:{0}", msg.From.Address))
str.AppendLine(String.Format("ATTENDEE;CN=""{0}"";RSVP=TRUE:mailto:{1}", msg.[To](0).DisplayName, msg.[To](0).Address))

str.AppendLine("END:VCALENDAR")
Dim ct As New System.Net.Mime.ContentType("text/calendar")
ct.Parameters.Add("method", "CANCEL")
ct.Parameters.Add("name", "meeting.ics")
Dim avCal As AlternateView = AlternateView.CreateAlternateViewFromString(str.ToString(), ct)
msg.AlternateViews.Add(avCal)
smtp.Send(msg)
杰里米·多特(Jeremy Dodt)

回答

要取消会议并将其从Outlook日历中删除,您需要将发送取消请求的事件的方法从“请求”更改为“取消”。

msg.Body = strBody.ToString()

Dim str As New StringBuilder()
str.AppendLine("BEGIN:VCALENDAR")

'PRODID: identifier for the product that created the Calendar object
str.AppendLine("PRODID:-//CARS//Outlook MIMEDIR//EN")
str.AppendLine("VERSION:2.0")
'''ORIGINAL-CHANGE TO CANCEL'''
'str.AppendLine("METHOD:REQUEST")
'''NEW - CHANGE TO CANCEL'''
str.AppendLine("METHOD:CANCEL")
'''Everything else remains the same. Will work and remove meeting from calendar.'''

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用ASP.net会议以编程方式更新Outlook会议?

来自分类Dev

如何以编程方式在DropDownEdit asp.NET(VB)上添加项目

来自分类Dev

如何以编程方式在VB.net中填充DataGridViewComboBoxColumn?

来自分类Dev

如何以编程方式在VB.net中填充DataGridViewComboBoxColumn?

来自分类Dev

VB.Net 如何以编程方式添加控件和事件处理程序

来自分类Dev

如何通过vb.net发送电子邮件以编程方式捕获Outlook的异常?

来自分类Dev

Outlook删除我以编程方式创建的会议

来自分类Dev

在c# dot net中如何获取outlook会议室容量属性?

来自分类Dev

如何以编程方式从Outlook保存附件?

来自分类Dev

如何以编程方式在ASP.NET MVC 5中注册RoleProvider?

来自分类Dev

如何以编程方式确定asp.net核心在哪个端口上运行

来自分类Dev

Asp.Net身份-如何以编程方式设置未经授权?

来自分类Dev

如何以编程方式在ASP.NET MVC 5中注册RoleProvider?

来自分类Dev

C# WebApi - Asp Net Core 2 - 如何以编程方式将 csproj 名称放入路由?

来自分类Dev

如何使用Outlook 2013会议邀请安排后续会议?

来自分类Dev

VB.NET如何提取Outlook约会的收件人?

来自分类Dev

如何从选定的邮件VB.NET获取Outlook PST名称

来自分类Dev

如何使用vb.net以编程方式处理MS Word文档(.docx)?

来自分类Dev

使用XmlConfigurator加载后,如何以编程方式设置log4net LockingModel?

来自分类Dev

.NET / Oracle:如何以编程方式使用DDL语句执行脚本

来自分类Dev

vb.net 以编程方式取消编辑 datagridview 单元格

来自分类Dev

如何以编程方式操作.NET ASPX表单?

来自分类Dev

如何以编程方式更改会话超时.Net Core

来自分类Dev

如何以编程方式操作.NET ASPX表单?

来自分类Dev

.Net WinForms。ListView 的选择矩形是如何以编程方式控制的?

来自分类Dev

如何以编程方式确定 .NET 项目的类型

来自分类Dev

使用Excel发送Outlook会议邀请

来自分类Dev

如何在asp.net中的日历控件中以编程方式选择和取消选择多个日期?

来自分类Dev

如何使用Outlook库在vb.net中发送/接收电子邮件

Related 相关文章

  1. 1

    如何使用ASP.net会议以编程方式更新Outlook会议?

  2. 2

    如何以编程方式在DropDownEdit asp.NET(VB)上添加项目

  3. 3

    如何以编程方式在VB.net中填充DataGridViewComboBoxColumn?

  4. 4

    如何以编程方式在VB.net中填充DataGridViewComboBoxColumn?

  5. 5

    VB.Net 如何以编程方式添加控件和事件处理程序

  6. 6

    如何通过vb.net发送电子邮件以编程方式捕获Outlook的异常?

  7. 7

    Outlook删除我以编程方式创建的会议

  8. 8

    在c# dot net中如何获取outlook会议室容量属性?

  9. 9

    如何以编程方式从Outlook保存附件?

  10. 10

    如何以编程方式在ASP.NET MVC 5中注册RoleProvider?

  11. 11

    如何以编程方式确定asp.net核心在哪个端口上运行

  12. 12

    Asp.Net身份-如何以编程方式设置未经授权?

  13. 13

    如何以编程方式在ASP.NET MVC 5中注册RoleProvider?

  14. 14

    C# WebApi - Asp Net Core 2 - 如何以编程方式将 csproj 名称放入路由?

  15. 15

    如何使用Outlook 2013会议邀请安排后续会议?

  16. 16

    VB.NET如何提取Outlook约会的收件人?

  17. 17

    如何从选定的邮件VB.NET获取Outlook PST名称

  18. 18

    如何使用vb.net以编程方式处理MS Word文档(.docx)?

  19. 19

    使用XmlConfigurator加载后,如何以编程方式设置log4net LockingModel?

  20. 20

    .NET / Oracle:如何以编程方式使用DDL语句执行脚本

  21. 21

    vb.net 以编程方式取消编辑 datagridview 单元格

  22. 22

    如何以编程方式操作.NET ASPX表单?

  23. 23

    如何以编程方式更改会话超时.Net Core

  24. 24

    如何以编程方式操作.NET ASPX表单?

  25. 25

    .Net WinForms。ListView 的选择矩形是如何以编程方式控制的?

  26. 26

    如何以编程方式确定 .NET 项目的类型

  27. 27

    使用Excel发送Outlook会议邀请

  28. 28

    如何在asp.net中的日历控件中以编程方式选择和取消选择多个日期?

  29. 29

    如何使用Outlook库在vb.net中发送/接收电子邮件

热门标签

归档