简体   繁体   中英

How to read only new content in VSTO Outlook MailItem body?

I've written a little C# VSTO add-in for Outlook 2003 that reads the body of emails as they are being sent, looking for certain words. It's working right now to do this:

if (currentItem.Body.Contains("text to search for"))

... but that checks the entire email body, not just the new message being sent.

Is there anyway to have Outlook just check the contents of the new message being sent, and so ignore the older email chain that might be in there too?

These messages could be in any format (HTML, Rich Text, Plain Text) and may or may not have any earlier messages chained in. This is just a productivity tool for me, so any hack that works is worth considering here.

Thanks!

@Corbin March在这里有最好的答案。 使用Mime Parsers分离多部分电子邮件

For the record, the solution I decided worked best for me was to simply check for a line starting with "FROM:", Mikael suggested. I stop searching for my text as soon as that is found. That's been working just fine for me for a while now.

Thanks for the responses and ideas, everyone.

Here's my code for reference:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim theLine As String
    Dim aBody()
    Dim bFound As Boolean
    Dim ctr As Long

    aBody = Array(Split(Item.Body, vbNewLine))
    bFound = False

    For ctr = 0 To UBound(aBody(1))
        theLine = aBody(1)(ctr)
        If InStr(theLine, "From:") > 0 Then
            Exit For
        End If

        If InStr(UCase(theLine), "ATTACH") > 0 Then
            bFound = True
        End If

    Next

    If bFound Then
        If Item.Attachments.Count < 1 Then
            Dim ans As Integer

            ans = MsgBox("Do you really want to send this without any attachments?", vbYesNo)
            If ans = 7 Then
                Cancel = True
                Exit Sub
            End If
        End If
    End If

End Sub

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM