获取新邮件的EntryID

时间:2010-11-22 22:47:00

标签: vbscript outlook

我们制作了一个自动打开Microsoft Outlook新邮件窗口的脚本。有些事情必须要填补。这项工作到目前为止:

Set Arguments = WScript.Arguments
If Arguments.Count > 4 Then
    Set Outlook = CreateObject("Outlook.Application")
    Set BodyObject = CreateObject("Scripting.FileSystemObject")
    Set Mail = Outlook.CreateItem(0)

    Mail.To = Arguments(0)
    Mail.CC = Arguments(1)
    Mail.BCC = Arguments(2)
    Mail.Subject = Arguments(3)

    Set BodyFile = BodyObject.OpenTextFile(Arguments(4))
    Mail.Body = BodyFile.ReadAll
    BodyFile.Close

    For Counter = 5 to (Arguments.Count - 1)
        Mail.Attachments.Add Arguments(Counter)
    Next

    Mail.Display
End If

但是我们知道我们想知道该邮件是否由用户发送,我们也想知道该邮件的EntryID,所以我们可以稍后查看。

现在Mail.Display不会返回任何内容,程序就会结束。它不会等到窗口关闭。因此,在Mail.Display之后,应该有类似:Mail.Wait或Mail发送事件,以便我们可以获得EntryID。

有人可以帮助我们吗?

提前致谢, 吉利斯和埃米尔

2 个答案:

答案 0 :(得分:1)

我刚从here找到了一个可能的解决方案:

  

你需要等待并获得EntryID   项目结束后的值   从发件箱发送。去做这个,   订阅Folder.Items.ItemAdd   已发送邮件文件夹上的事件。那   事件通过新添加的 - 即   新发送的项目作为其参数。

答案 1 :(得分:0)

项目必须首先存在于Outlook中以具有EntryID值,使用保存属性并在

之后立即获取其EntryID
Mail.Save
strEntryID = Mail.EntryID

我有一个用VBA编写的示例,用于将Access表单中的注释保存到Outlook

    Dim outobj As Outlook.Application
    Dim outappt As Outlook.NoteItem
    Set outobj = CreateObject("outlook.application")
    Set outappt = outobj.CreateItem(olNoteItem)
    With outappt
    If Not IsNull(Me!strBody) Then .Body = Me!strBody
    .Save
    Me!strEID = .EntryID
    End With