2010-11-22 54 views
1

我們製作了一個自動打開Microsoft Outlook新郵件窗口的腳本。有些東西已經被填入了。到目前爲止是這種情況:獲取新郵件的EntryID

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。

有人可以幫助我們嗎?

由於提前, 吉利斯和Emiel

+0

我有同樣的問題,除了我想在VB.Net中實現相同。我試圖從MailItem發送後發生的Write事件中檢索EntryID。雖然沒有多少運氣。你有沒有設法解決這個問題? – Zolomon 2011-01-17 09:55:58

回答

1

我剛剛發現從here一個可能的解決方案:

你需要等待,得到的EntryID 值的項目已 從交付後發件箱。爲此, 訂閱已發送郵件文件夾上的Folder.Items.ItemAdd 事件。 事件通過新添加 - 即 新發送的項目作爲其參數。

+0

我會看看我能否得到一個工作示例。 – Zolomon 2011-01-17 10:03:52

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