在主要浏览器的经典asp Web应用程序中生成Outlook约会链接
问题描述:
我试图在我的经典asp网页中创建一个链接,以在点击它时向某些数据添加约会。首先,为了做一个测试,我在Outlook中创建了它,并将其保存为两种格式,即.ics和.vcs,并在我的页面中链接后。在主要浏览器的经典asp Web应用程序中生成Outlook约会链接
当我运行它们时,我注意到.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>