Outlook 规则将收到的电子邮件转换为纯文本

Outlook 规则将收到的电子邮件转换为纯文本

我们所有人都遇到过这样的人,他们决定在电子邮件中添加大量垃圾标记,使其几乎无法阅读。我希望在 Outlook 2010 中设置一条规则,只要电子邮件来自某个人(或可能是群组),它就会自动将其转换为纯文本而不是 HTML。有什么想法吗?

答案1

我通过指定邮件规则来“解决”了同样的问题,该规则仅拾取特定的问题电子邮件,并将其移至“垃圾邮件”。在垃圾邮件中,所有电子邮件都转换为纯文本。

因此,我会在垃圾邮件文件夹中阅读这些问题电子邮件,这比每次我意外预览问题电子邮件时 Outlook 都会“不响应”一分钟的现状要好得多。

编辑:我还在邮件规则中添加了通知警报,这样我就不会“错过”电子邮件

答案2

如果您担心显示效果,而实际上不需要转换,请参阅此处的“以纯文本形式阅读”说明 http://support.microsoft.com/kb/831607

答案3

您可以使用 VBA 编辑消息。根据 MSDN,如果您设置_MailItem.BodyFormat属性olFormatPlain将丢弃所有格式。

本文介绍如何使用 VBA 作为 Outlook 过滤规则的更强大替代方案应该会给你指明正确的方向。

答案4

您可以在此处找到包含所需 VBA 的规则,以及 ItemAdd 和 NewMailEx 替代方案。

http://www.outlookcode.com/article.aspx?id=62

Sub ConvertToPlain(MyMail As MailItem)
Dim strID As String
Dim objMail As Outlook.MailItem

strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
objMail.BodyFormat = olFormatPlain
objMail.Save

Set objMail = Nothing
End Sub

对于 ItemAdd 和 NewMailEx 解决方案,您可以通过像这样测试 SenderName 或 SenderEmailAddress 来限制转换。

If objMail.SenderName = "Mailer, HTML" Then
    objMail.BodyFormat = olFormatPlain
    objMail.Save
End if

您可以使用它来找到 SenderName。(由于未知原因,我的一个发件人没有 SenderEmailAddress。)

Sub Addresses_CurrentItem()

Dim olMail As Object

On Error Resume Next
Set olMail = ActiveInspector.currentItem

If olMail Is Nothing Then
' might be in the explorer window
    If (ActiveExplorer.selection.Count = 1) And _
     (ActiveExplorer.selection.Item(1).Class = olMail) Then
        Set olMail = ActiveExplorer.selection.Item(1)
    End If
End If
On Error GoTo 0

If olMail Is Nothing Then

MsgBox "Problem." & vbCr & vbCr & "Try again " & _
"under one of the following conditions:" & vbCr & _
    "-- You are viewing a single email message." & vbCr & _
    "-- You have only one message selected.", _
vbInformation
Exit Sub
End If

If TypeOf olMail Is MailItem Then

Debug.Print "  Sender    : " & olMail.SenderName   
Debug.Print "  SenderEmailAddress: " & olMail.SenderEmailAddress & vbCr

End If

End Sub

相关内容