我为Outlook 2003编写了一个小的C#VSTO加载项,用于在发送电子邮件时读取它们,查找某些单词。它现在正在努力做到这一点:
if (currentItem.Body.Contains("text to search for"))
...但是会检查整个电子邮件正文,而不仅仅是正在发送的新邮件。
有没有让Outlook只检查正在发送的新邮件的内容,所以忽略那里可能存在的旧电子邮件链?
这些消息可以是任何格式(HTML,富文本,纯文本),可能有也可能没有链接的任何早期消息。这对我来说只是一种生产力工具,因此任何有效的黑客都值得考虑。
谢谢!
答案 0 :(得分:1)
@Corbin March在这里有最好的答案Separate a multipart email using Mime Parsers
答案 1 :(得分:1)
对于记录,我认为最适合我的解决方案是简单地检查以“FROM:”开头的行,Mikael建议。一旦发现,我就会停止搜索我的文本。这对我来说已经好了一段时间了。
感谢大家的回应和想法。
这是我的参考代码:
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