Detectar el final del nuevo mensaje en el cuerpo de la conversación por correo electrónico.

Cuando un mensaje es respondido o forjado, el hilo anterior se anexa en su nuevo correo colocando, por ejemplo, ---- Mensaje original ---- delante de él.

Outlook hace lo mismo con los mensajes tekst pero con los correos HTML muestra una línea seguida de De: ..

Dado que Outlook muestra una línea entre estos mensajes, creo que es posible restar estos mensajes utilizando VBA. ¿Pero cómo?

Objetivo: cuando el usuario envía un correo (Application_ItemSend) quiero escanear el mensaje en busca de ciertas palabras. Pero no me importa si ocurre en un mensaje anterior, solo quiero escanear el mensaje recién escrito.

El siguiente ejemplo funcionará cuando responda un correo electrónico en Outlook cuando esté en texto (¡y Outlook en inglés!). Pero NO funcionará al enviar un correo electrónico 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

Así que necesito un 'token' para dividir, correcto ... ¿Pero qué es este token? Todo lo que hay entre myMsg y el de msg es un doblevbCrLf. Lo mismo que cuando ingreso una nueva línea en mi mensaje ... ¡no hay nada en absoluto!

Respuestas a la pregunta(3)

Su respuesta a la pregunta