2012-06-29 31 views
3

我需要根據收件人自動將文本插入發件郵件。我在另一個問題的答案中發現了一些代碼(信用度爲76Mel),看起來很有希望。看來,我可以在代碼附加到ItemSend在ThisOutlookSessionOutlook - 根據收件人插入文本

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
    If Item.MessageClass = "IPM.Note" Then 
     For Each myRecipient In Item.Recipients 
      If myRecipient.Address = "<EMAIL ADDRESS TO FIND>" Then 
      <code to add text> 
      End If 
     Next 
    End If 
End Sub 

將代碼是什麼,增加了文本的電子郵件的正文 - 又怎會甚至工作?這封電子郵件在發送之前會觸發嗎?還是已經太晚了?

我確實需要它自動化(創建按鈕或手動運行宏不是一個真正的選擇;它是一個記憶的東西:如果我能記得運行宏,我可以手動添加文本)

回答

2

這是你正在嘗試?我已經添加了註釋,所以你不應該有任何問題的理解吧:)如果您仍然有一個問題,簡單地問...

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
    '~~> Check if it is an email 
    If TypeName(Item) <> "MailItem" Then Exit Sub 

    Dim srchString As String, NewText As String 

    '~~> Email Address which you want to search for 
    srchString = "[email protected]" 

    '~~> New text that you want to add 
    NewText = "Blah Blah" 

    '~~> Search To, CC, BCC Fields 
    If InStr(1, Item.To, srchString, vbTextCompare) Or _ 
    InStr(1, Item.CC, srchString, vbTextCompare) Or _ 
    InStr(1, Item.BCC, srchString, vbTextCompare) Then 
     '~~> Add the relevant text to the body 
     Item.Body = Item.Body & vbNewLine & NewText 
    End If 
End Sub 

我會推薦這MSDN鏈接。

主題:的MailItem對象成員

鏈接http://msdn.microsoft.com/en-us/library/bb176688%28v=office.12%29.aspx

報價從上面的鏈接

表示在收件箱文件夾一封郵件。

列出了的MailItem對象

+1

這是好事,但您的代碼不檢查外發產品的電子郵件的所有方法/屬性。 – JimmyPena

+0

謝謝 - 你的代碼很清楚。這似乎是我後 - 我將代碼複製到Itemsend&測試,但我的文本沒有添加。我甚至刪除了電子郵件的檢查(所以理論上講,將文本添加到所有電子郵件中)並且它仍然不添加文本。 – Chip

+0

@JP「Good Point,我會盡快更新它@Chip:我測試了代碼,它能正常工作,我可以看到你試過的確切代碼嗎 –