使用 ASP CLASSIC 创建 Outlook/Exchange 日历

问题描述 投票:0回答:1

在使用 ASP CLASSIC 编写的旧应用程序中,我需要实现 Outlook 邀请/日历。

首先,我的例程创建 .ICS 文件(并且我将相同的内容放入“Modello_Invito”变量中),并将 .ICS 文件保存为纯文本文件

    BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
BEGIN:VTIMEZONE
TZID:Europe/Rome
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:20241109T103600Z
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:20241109T103600Z
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20241108T000000Z
LAST-MODIFIED:20241108T000000Z
DTSTAMP:20241108T180800Z
UID:{9A7BC596-7C70-4329-9425-52486FC83D85} i
SUMMARY:Calendar: OGGETTO
ORGANIZER;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:[email protected]
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:[email protected]
DTSTART;TZID=Europe/Rome:09/11/2024T12:36
DTEND;TZID=Europe/Rome:09/11/2024T17:36
PRIORITY:3
TRANSP:OPAQUE
LOCATION:LUOGO MEETING
DESCRIPTION;ALTREP:Proviamo
BEGIN:VALARM
TRIGGER:PT30M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR

之后,我尝试将此邀请发送给受邀请的用户

    Dim objMail
Set objMail = Server.CreateObject("CDO.Message")
  objMail.From = eMail_Sender
  objMail.To = eMail_Dest
  objMail.Cc = ""
  objMail.Bcc = ""
  objMail.Subject = trim(Obj_Calendar)

  objMail.BodyPart.ContentMediaType = "text/calendar" 
  objMail.BodyPart.Charset = "UTF-8" 
  objMail.HTMLBody = Modello_Invito
  objMail.AddAttachment sICS_file

我将 .ICS 内容放入附件和电子邮件正文中。 电子邮件以 .ICS 文件作为附件发送,但电子邮件客户端无法识别它是日历。

在其他帖子中阅读其他用户的反馈,我在代码中添加了“内容类型”建议:

  objMail.Fields("urn:schemas:mailheader:content-class") = "urn:content-classes:calendarmessage" 
  objMail.Fields("urn:schemas:mailheader:content-type") = "text/calendar; method=REQUEST; charset=UTF-8"
  objMail.Fields("urn:schemas:mailheader:content-transfer-encoding") = "8bit" 

但结果并不如你所愿。 电子邮件附有 .ICS 文件,内容类型正确设置为“文本/日历”,但邮件客户端无法识别它是日历邀请。

因此不会显示“接受”、“拒绝”和“确认”按钮。

有什么建议吗?

outlook calendar cdo.message
1个回答
0
投票

要被识别为邀请,您的消息必须包含单个部分 (ICS)。消息内容类型必须为

text/calendar
。不要添加任何 MIME 部分,消息必须仅包含有效负载。

© www.soinside.com 2019 - 2024. All rights reserved.