我就是这样做的。我添加了一个额外的循环来查看整个消息体,以防有多个循环。
Dim myStr As String Dim myURL As String Dim white_url_found As Boolean myStr=Msg.HTMLBody myURL = "APPEND_THIS_" Dim whiteURL(0 To 2) As String whiteURL(0) = ".google.com" whiteURL(1) = ".facebook.com" whiteURL(2) = "mailto:" searchstart = InStr(1, myStr, "href=") While searchstart <> 0 nextstart = InStr(searchstart + 1, myStr, "href=") white_url_found = False For i = LBound(whiteURL()) To UBound(whiteURL()) URL_pos = InStr(searchstart, myStr, whiteURL(i)) If URL_pos > 0 And (URL_pos < nextstart Or nextstart = 0) Then white_url_found = True Exit For End If Next i If Not white_url_found Then myStr = Left(myStr, searchstart - 1) & Replace(myStr, "href=" & Chr(34), "href=" & Chr(34) & myURL, searchstart, 1, vbTextCompare) If nextstart <> 0 Then nextstart = nextstart + Len(myURL) End If searchstart = nextstart Wend Msg.HTMLBody = myStr Msg.Save