我们所有人都遇到过这样的人,他们决定在电子邮件中添加大量垃圾标记,使其几乎无法阅读。我希望在 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