3

В последнее время люди на работе отправляли списки рассылки в виде слепых копий, а не просто отправляли их в списки рассылки. Я думаю, что цель состоит в том, чтобы не дать людям случайно ответить на все, но это означает, что эти электронные письма не сортируются в соответствующие папки, когда они приходят.

Я хотел бы, по крайней мере, иметь возможность сортировать их в общую папку, но эти письма приходят без строки «To:» в заголовках. Я использую Outlook 2007 и не могу найти способ использовать встроенный редактор правил для создания правила, которое сортирует эти электронные письма.

Есть ли плагин, который позволит мне сортировать подобные письма, или лучший редактор правил?

Обновлено: я знаю, что это очень старый, но это все еще очень раздражает меня. Есть ли способ сортировки таких писем в свою папку?

Обновление еще раз: просто, чтобы люди были ясны, я думаю, что логика для правила, которое мне понадобится, будет выглядеть примерно так: «Кому и CC не содержат ни меня, ни списков рассылки, которые включают меня».

4 ответа4

4

Казалось бы, вы можете выбрать следующие условия для достижения успеха в шагах с 1 по 3 мастера правил:

  1. Установите флажок «Где мое имя отсутствует в поле" Кому "»
  2. Установите флажок "переместить его в указанную папку" и выберите папку
  3. Установите флажок «за исключением случаев, когда мое имя указано в поле" Кому "или" Копия ")

Я проверил его, используя свою рабочую электронную почту, отправив электронное письмо от Google, и, кажется, он сделает то, что вы ищете, если я правильно прочитал ваш вопрос.

1

Если у вас есть сервер Exchange, и он все внутренний, то нет, невозможно определить, кому было отправлено электронное письмо.

Если оно было отправлено с внешнего почтового сервера или почти с любого почтового сервера, кроме Exchange: в заголовках должна быть указана исходная полученная строка; какие правила Outlook можно искать (только на стороне клиента). Просто установите условие "с конкретными словами в заголовке сообщения" для адреса электронной почты списка рассылки.

Exchange не добавляет стандартные заголовки электронной почты, если не покидает Exchange, который не соответствует RFC, но опять же это Microsoft.

0

Я предлагаю вам создать правило, которое перемещает все электронные письма, которые находятся в TO или CC, в папку, и эта папка становится основной для вас, а все остальные письма превращаются в другие папки.

0

Итак, вы ищете правило «Где мое имя отсутствует в полях Кому или Копия», но это единственное правило, которого у них нет в мастере. Я надеюсь, что у меня есть это право.

Я не знаю ни одного подобного дополнения, но возможно накатить свое. В этой статье MSDN показано, как получить доступ к Outlook 2007 и создать надстройку.

Или вы могли бы сделать это в макросах VBA, на самом деле ... вот этот, который я написал, будет делать то, что вы хотите, просто настройте константы по своему вкусу. В Outlook откройте редактор макросов (Alt+F11) и вставьте его в модуль ThisOutlookSession. Если вы не добавили туда макросы, он должен быть пустым.

Вам нужно будет включить макросы, если это еще не сделано, через меню Сервис -> Макросы -> Безопасность. Если установлено «Предупреждения для всех макросов», вам будет предлагаться каждый раз, когда вы открываете Outlook, что нормально. Повторно откройте Outlook после сохранения макроса.

'# [Outlook VBA custom mail mover by keyboardMonkey]
'# Checks new email if YOUR_NAME does not appear in the TO or CC list.
'# moves the message to DESTINATION_FOLDER.
'# Note: DESTINATION_FOLDER must be a child of the Inbox node, not a sibling.

Const YOUR_NAME As String = "Wesley"
Const DESTINATION_FOLDER As String = "testfolder"

'// hook into the outlook items events
Public WithEvents myOlItems As Outlook.Items


Public Sub Application_Startup()

    ' get the inbox item collection
    Set myOlItems = Outlook.Session.GetDefaultFolder(olFolderInbox).Items

End Sub

'// called on mail item add
Private Sub myOlItems_ItemAdd(ByVal Item As Object)

    If TypeName(Item) = "MailItem" Then

        ' get strongly typed object
        Dim mymail As MailItem
        Set mymail = Item

        ' flags if our name appears in each of the fields
        Dim name_in_to As Boolean
        Dim name_in_cc As Boolean
        name_in_to = InStrB(1, mymail.To, YOUR_NAME) > 0
        name_in_cc = InStrB(1, mymail.CC, YOUR_NAME) > 0

        '#Uncomment below to show mail item details
        ' MsgBox (mymail.Subject + " has me in TO: " + Str(name_in_to) + " and CC: " + Str(name_in_cc))

        ' are we mentioned in the header?
        If (Not name_in_to And Not name_in_cc) Then

            ' start with each main mapi folder
            Dim idx As Integer
            For idx = 1 To Outlook.Session.Folders.Count - 1

                ' recurse into subfolders
                Dim dest As Outlook.MAPIFolder
                Set dest = GetFolder(Outlook.Session.Folders.Item(idx), DESTINATION_FOLDER)

                ' we found our destination!
                If Not (dest Is Nothing) Then
                    mymail.Move dest
                    Exit For
                End If

            Next

        End If

        ' house cleaning
        Set mymail = Nothing

    End If

End Sub

'// to iterate is human. to recurse, divine
Private Function GetFolder(parent As Folder, name As String) As Outlook.MAPIFolder
    Dim idx As Integer
    Dim res As Object
    For idx = 1 To parent.Folders.Count
        Set res = GetFolder(parent.Folders.Item(idx), name)
        If Not res Is Nothing Then
            Set GetFolder = res
            Exit For
        End If
    Next
    If (parent.name = name) Then
        Set GetFolder = parent
    End If
End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .