Определить конец нового сообщения в теле сообщения электронной почты
Когда сообщение получает ответ или пересылается, предыдущий поток добавляется к вашему новому письму, помещая перед ним то есть ---- оригинальное сообщение.
Outlook делает то же самое с текстовыми сообщениями, но с HTML-письмами показывает строку, сопровождаемую From: ..
Поскольку outlook показывает грань между этими сообщениями, я считаю, что можно вычесть эти сообщения с помощью VBA. Но как?
Цель: когда пользователь отправляет письмо (Application_ItemSend), я хочу отсканировать сообщение на наличие определенных слов. Но мне все равно, если это произойдет в предыдущем сообщении, я только хочу отсканировать только что напечатанное сообщение.
Пример ниже будет работать при ответе на электронное письмо в Outlook, когда оно в тексте (и Outlook на английском языке!). Но это не будет работать при отправке электронного письма в формате HTML.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim EndOfMsg As Integer
Dim myMsg as String
EndOfMsg = InStr(Item.Body, "-----Original Message-----")
If EndOfMsg = 0 Then
myMsg = Item.Body
Else
myMsg = Left(Item.Body, EndOfMsg)
End If
MsgBox myMsg
End Sub
Так что мне нужен какой-нибудь токен, чтобы поделить, правильно. Но что это за токен? Все, что есть между myMsg и более старыми сообщениями, является двойнымvbCrLf
, Так же, как когда я ввожу новую строку в моем сообщении ... нет ничего уникального!