我正在寻求帮助解决一个技术问题。在我目前的工作场所,我们有一个自动调度系统来处理我们的约会。当预约被预订时(通过我们无法控制的基于网络的方法),我们会收到一封带有 ICS 会议附件的自动电子邮件(全部来自同一地址)。然后我们必须打开此附件才能将其显示在我们的日历中。
问题是 - 它非常耗时且不可靠,因为有些人会删除电子邮件并假装从未收到过它,以避免工作!将 Outlook 设置为自动接受会议不起作用,因为它们是 ICS 附件而不是直接邀请。
我需要的(理想情况下)是一种在收到电子邮件时自动接受 ICS 会议附件的方法,无需任何用户界面。然后它应该会自动显示在我们的日历上。
我有一些 VBA 经验,但经验非常有限,仅限于粘贴其他人的解决方案!因此,在这方面的任何帮助都将非常有帮助。
如果你需要知道,我们使用 Microsoft Office 2010,因此日历和电子邮件都是通过 Outlook 2010 进行的。
谢谢大家。
答案1
我发现了一个脚本本网站它应该能完成你要求的任务。下面是脚本:
Public Sub SaveandOpenAttachments(objMsg As mailitem)
Dim objAttachments As Outlook.Attachments
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As String
Dim oAppt As Object
' Get the path to your My Documents folder
strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16)
On Error Resume Next
' Set the Attachment folder. (Folder must exist.)
strFolderpath = strFolderpath & "\Att temp\"
Set objAttachments = objMsg.Attachments
lngCount = objAttachments.Count
If lngCount > 0 Then
For i = lngCount To 1 Step -1
strFile = objAttachments.item(i).FileName
strFile = strFolderpath & strFile
Debug.Print strFile
objAttachments.item(i).SaveAsFile strFile
Set oAppt = Session.OpenSharedItem(strFile)
oAppt.Close olSave
' should delete strfile too
SetAttr strFile, vbNormal
Kill strFile
Next
End If
ExitSub:
Set objAttachments = Nothing
End Sub