我试图通过提取会话线程中的最后一条消息来合并邮件。我想保持格式完整,所以我试图得到最后的消息与HTML。我正在引用像这样的Microsoft HTML Object Library
Dim mi As MailItem
Set mi = ActiveExplorer.Selection.Item(1)
Dim bhtml As HTMLBody
Set bhtml = mi.HTMLBody
这会导致类型不匹配错误。
答案 0 :(得分:0)
MailItem.HTMLBody属性返回一个字符串,而不是HTLBody对象。
答案 1 :(得分:0)
我使用Regex从oMailitem.body
属性返回的字符串中提取最后一条消息。这里是模式(.*(?=(From:.*\nSent:.*\nTo:)))
它是+ ve展望未来我使用匹配集合中的第一项并将其设置在匹配对象中,而不是我提取最后一条消息,就像使用左侧函数一样lastmessage = Left(oMailItem.body,oMatch.firstindex)
比我把它包装成像这样的HTML
Dim vResult, vLine, sResult As String
vResult = Split(lastMessage, vbCrLf)
For Each vLine In vResult
sResult = sResult & "</p><p>" & CStr(vLine)
Next
styledLastMessage = "<p>" & sResult & "</p>"
最后附加到邮件我想像这样合并
Dim miBody() As String
miBody = Split(oMailItem.HTMLBody, "<div class=WordSection1>")
miBody(1) = "<p>" & styledLastMessage & "</p>" & "-------" & vbCrLf & miBody(1)
oMailItem.HTMLBody = Join(miBody, "<div class=WordSection1>")
注意:<div class=WordSection1>
第一条消息开始后。