2016-04-22 64 views
0

如果選定郵件的主題,郵件地址和FromSender地址,我選擇任何郵件以打開一個帶有郵件主體的新郵件。從新郵件中刪除從舊郵件複製的簽名

我在新郵件正文中獲取所選郵件的簽名內容。

我該如何消除簽名內容(謝謝..關閉... xxxxx.etc;),所以它不在我的新的mailbody中。

Public Sub CreateNewMessage() 

Dim objMsg As MailItem 
Dim Selection As Selection 
Dim obj As Object 

Set Selection = ActiveExplorer.Selection 

For Each obj In Selection 

    Set objMsg = Application.CreateItem(olMailItem) 

    With objMsg 
     .To = "" 
     .CC = "" 
     .BCC = "" 
     .Subject = "" 
     .Body = "<Subject> " & obj.Subject & _ 
      " </Subject>" & vbCrLf & vbCrLf & _ 
      "<Mail> " & obj.Body & " </Mail>" & vbCrLf & vbCrLf & _ 
      "<Sender> " & obj.SenderEmailAddress & " </Sender>" 
     .Sensitivity = olConfidential 
     .Display 
    End With 

    Set objMsg = Nothing 
Next 
End Sub 
+0

我不認爲簽名保存在電子郵件的單獨部分,所以檢測它只能通過文本搜索。但也許有一個與「ObjMail.HTMLBody = ObjMail.Body」黑客攻擊。看看這篇文章,那裏的問題是相反的 - > http://stackoverflow.com/questions/8994116/how-to-add-default-signature-in-Outlook 如果有人給你一個乾淨的方式來檢測身體,我會建議不要使用我的評論;) –

+0

雅,簽名被包括在所選郵件的郵件正文中。那麼,如何在'objMsg'的'.Body'中對這樣的內容進行文本搜索。 – Abhinay

回答

0

如果您在簽名,這始終是像「問候」同一個關鍵字,您可以使用此:

Option Explicit 

Sub DeleteAfterText() 

' Deletes all text after endStr. 

Dim currMail As mailitem 
Dim msgStr As String 

Dim endStr As String 
Dim endStrStart As Long 
Dim endStrLen As Long 

Set currMail = ActiveInspector.CurrentItem 
endStr = "Best Regards" 
endStrLen = Len(endStr) 

msgStr = currMail.HTMLBody 
endStrStart = InStr(msgStr, endStr) 

If endStrStart > 0 Then 
    currMail.HTMLBody = Left(msgStr, endStrStart + endStrLen) 
End If 

End Sub 

,如果你沒有一個關鍵字,或者是不同的,它可能很難找到簽名

+0

我以前看過這個代碼,但是我在哪裏可以在代碼的'.Body'中調用這段代碼。 – Abhinay

+0

只需將currMail更改爲objMsg –

+0

即可......但我在哪裏可以在我的'.Body'代碼中調用此DeleteAfterText()方法。 – Abhinay

相關問題