2012-12-18 60 views
2

我試圖在傳入電子郵件中替換某些文本。在傳入電子郵件中查找和替換文本

我發現了幾個腳本,但這些腳本在傳出/創建電子郵件上工作。

當前工作CODE(感謝拉里):

Sub testing(MyMail As MailItem) 
    MyMail.HTMLBody = Replace(MyMail.HTMLBody, "TESTING", "TESTINGTESTING") 
    MyMail.Save 
End Sub 

這Outlook會話代碼:

Private Sub Application_NewMail() 

    Dim mail As MailItem 

    Set mail = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items.GetFirst 
    If mail.Class = olMail Then 'It should be 
     'change subject 
     mail.Subject = "TESTING" 
     'replace body text 
     If mail.BodyFormat = olFormatHTML Then 
      mail.HTMLBody = Replace(mail.HTMLBody, "TESTING", "TESTINGTESTING") 
     Else 
      mail.Body = Replace(mail.Body, "SEARCHTEXT", "REPLACETEXT") 
     End If 
    End If 
End Sub 

回答

1

規範收件箱中的郵件處理。

Sub testing() 
Dim mail As MailItem 
Dim Inbox As Outlook.Folder 

Set Inbox = Session.GetDefaultFolder(olFolderInbox) 
For Each mail In Inbox.Items 
    'change subject 
    mail.Subject = "TESTING" 
    'replace body text 
    If mail.BodyFormat = olFormatHTML Then 
     mail.HTMLBody = Replace(mail.HTMLBody, "TESTING", "TESTINGTESTING") 
    Else 
     mail.Body = Replace(mail.Body, "SEARCHTEXT", "REPLACETEXT") 
    End If 
Next mail 

如果您希望在有新郵件時應用宏,請使用以下代碼。

將代碼放入ThisOutlookSession模塊。

Private Sub Application_NewMail() 

Dim newMail As MailItem 

Set newMail = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items.GetFirst 

newMail.HTMLBody = Replace(newMail.HTMLBody, "TESTING", "TESTINGTESTING") 

End Sub 

此代碼片段可用於「規則」中的「運行腳本」。

Sub testing(MyMail As MailItem) 
    MyMail.HTMLBody = Replace(MyMail.HTMLBody, "TESTING", "TESTINGTESTING") 
    MyMail.Save 
End Sub 
+0

感謝您的快速回復Larry, 但是我怎樣才能真正替換電子郵件中的文本? 我可以只添加「Item.Body =替換(Item.Body,」一些文本「,」一些替換文本「)」我找到了什麼地方? 我真的很喜歡這個東西:P – Kris

+0

是的,你可以做到這一點。如果對Body進行了更改,我不太確定格式,也許您可​​以嘗試HTMLBody(mail.HTMLBody) – Larry

+0

對不起,我無法回答自己的問題。 Sub test(MyMail As MailItem) Dim Mail As MailItem Dim Inbox As Outlook.Folder Set Inbox = Session.GetDefaultFolder(olFolderInbox)For Each mail In Inbox.Items'change subject mail.Subject =「TESTING」Item.Body = Replace(Item.HTMLBody,「Test 123」,「It's Working!」)下一個郵件結束Sub 我使用這個atm作爲我的代碼,但它似乎並不代替文本,但它會改變電子郵件的主題。 這是正確的嗎? (我也改變了子測試部分,因爲它沒有出現在腳本列表中)。 再次感謝! – Kris

相關問題