在适用于主浏览器的经典 asp Web 应用程序中生成 Outlook 约会链接



我正在尝试在我的经典 asp 网页中创建一个链接,以便在单击它时使用一些数据向 Outlook 添加约会。首先,为了进行测试,我在 Outlook 中创建了它,并将其保存为两种格式,.ics 和 .vcs,在我链接到我的页面后。

当我运行它们时,我注意到.vcs不适用于Firefox和Chrome,.ics不仅适用于Firefox,所以可能会选择最后一个。

我的问题是,有没有其他格式或方法可以从Firefox打开.ics文件? 它无法识别它,也无法打开Outlook窗口。

谢谢!

在Experts-Exchange上找到了这个解决方案,全部归功于他们:

Sub createICS (sTitle, sDesc, sDate, sStartT, eDate, sEndT, sFName)
Response.Buffer = True
server.ScriptTimeout = 3000
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim iFile : Set iFile = objFSO.CreateTextFile(sFName, TRUE)
iFile.WriteLine("BEGIN:VCALENDAR")
iFile.WriteLine("PRODID:Microsoft CDO for Microsoft Exchange")
iFile.WriteLine("VERSION:2.0")
iFile.WriteLine("METHOD:PUBLISH")
iFile.WriteLine("BEGIN:VEVENT")
iFile.WriteLine("DTSTAMP:"&dateToUTC (DATE(), TIME()))
Dim dtStart, dtEnd
dtStart = "DTSTART:" & dateToUTC (sDate, sStartT)
dtEnd = "DTEND:" & dateToUTC (eDate, sEndT)
iFile.WriteLine(dtStart)
iFile.WriteLine(dtEnd)
iFile.WriteLine("UID:{A6DEF157-DFCE-40F4-AC77-217563191E7B}")
iFile.WriteLine("SUMMARY:" & sTitle)
iFile.WriteLine("DESCRIPTION:" & sDesc)
iFile.WriteLine("SEQUENCE:0")
iFile.WriteLine("PRIORITY:3")
iFile.WriteLine("CLASS:Personal")
iFile.WriteLine("STATUS:CONFIRMED")
iFile.WriteLine("TRANSP:OPAQUE")
iFile.WriteLine("X-MICROSOFT-CDO-BUSYSTATUS:BUSY")
iFile.WriteLine("X-MICROSOFT-CDO-INSTTYPE:0")
iFile.WriteLine("BEGIN:VALARM")
iFile.WriteLine("TRIGGER:PT10M")
iFile.WriteLine("ACTION:DISPLAY")
iFile.WriteLine("DESCRIPTION:Reminder")
iFile.WriteLine("END:VALARM")
iFile.WriteLine("END:VEVENT")
iFile.WriteLine("END:VCALENDAR")
iFile.close()
End Sub
Function dateToUTC (sDate, sTime)
Dim iHour, iMin, iYear, iMonth, iDay, tDate, tTime 
tDate = DateValue(sDate)
tTime = TimeValue(sTime)
iHour = Hour(DateAdd("h", 4, tTime)) 'correction for US Eastern time
iMin = Minute(tTime)
iYear = Year(tDate)
iMonth = Month(tDate)
iDay = Day(tDate)
Dim s : s = iYear
if iMonth < 10 then s = s & "0"
s = s & iMonth
if iDay < 10 then s = s & "0"
s = s & iDay & "T"
if iHour < 10 then s = s & "0"
s = s & iHour
if iMin < 10 then s = s & "0"
s = s & iMin & "00Z"
dateToUTC = s
End Function

if request.querystring("a") = 1 then
strPath = server.mappath("/temp.ics")
Call createICS ("The Title", "The Description", formatdatetime(now,2), formatdatetime(now,4), formatdatetime(now+1,2), formatdatetime(now+1,2), strPath)
'do your emailing stuff here and when you add the attachment to the code use the strPath variable as in above
end if
%>
<a href="/temp2.asp?a=1">Click Here For It</a>

最新更新