6

Мне нужна папка поиска Outlook, которая находит электронную почту путем поиска фактического адреса электронной почты отправителя или получателя. Например, если я хочу найти все сообщения от отправителей в домене example.com, я использую критерии поиска From ... @ example.com:

Но поиск только возвращает сообщения , где @example.com появляется в отправителе Отображаемого имени (например , From: John Doe <john@example.com>). Если имя не содержит адрес электронной почты, электронная почта не появляется в результатах поиска.

Как мне искать электронные письма, основываясь на фактическом адресе электронной почты To/From/CC, даже если этот адрес отсутствует в отображаемом имени?


Что я пробовал:

  • Я просмотрел все доступные поля на вкладке « Дополнительно ». Я вижу поля "От", "Кому" и т.д., Но они работают одинаково.
  • Я нашел этот пост, который предлагает поиск в поле "Тема" и теле сообщения ... но это очень ненадежно.
  • Google .... но есть миллиард результатов, говорящих мне, как сделать то, что я уже делаю.

2 ответа2

3

Мне нужна папка поиска Outlook, которая находит электронную почту путем поиска фактического адреса электронной почты отправителя или получателя.

Можно настроить папку поиска для поиска электронной почты на основе фактического адреса электронной почты отправителя (см. Ниже). Однако, это не представляется возможным , чтобы выставить фактический адрес электронной почты для полей Кому, Копия или СК. Объяснение почему можно найти в конце этого ответа.

Настройка папки поиска для поиска по фактическому адресу электронной почты отправителя

Примечание. Эти инструкции написаны для Office 2013, но решение должно работать как минимум для Outlook 2007 и более поздних версий.

Шаг А. Добавление настраиваемого поля «Фактический адрес отправителя» в Outlook с помощью формы

Эти шаги создают пользовательскую форму, которая добавляет новое поле в Outlook с фактическим адресом электронной почты отправителя:

  1. Сохраните следующую пользовательскую конфигурацию формы Outlook с именем файла FromEmailAddress.cfg:

    [Description] 
    MessageClass=IPM.Note
    CLSID={00020D31-0000-0000-C000-000000000046} 
    DisplayName=From Email Address 
    Category=Standard 
    Subcategory=Form 
    Comment=This forms is used to expose a sender's actual email address.
    LargeIcon=notel.ico
    SmallIcon=notes.ico 
    VersionMajor=1
    VersionMinor=0
    Locale=enu 
    Hidden=1 
    Owner=Microsoft
    [Platforms]
    Platform2=NTx86
    Platform9=Chicago
    [Platform.NTx86]
    CPU=ix86
    OSVersion=WinNT3.5
    [Platform.Chicago]
    CPU=ix86
    OSVersion=Win95
    [Properties] 
    Property01=FromEmailAddress
    [Property.FromEmailAddress] 
    ;PropTag=PR_SENDER_EMAIL_ADDRESS, 0x0C1F001E
    Type=30     ; 001E = 30 in decimal
    NmidInteger=0xc1f   ; 0C1F
    DisplayName=From E-mail Address 
    [Verbs] 
    Verb1=1 
    [Verb.1] 
    DisplayName=&Open 
    Code=0 
    Flags=0 
    Attribs=2 
    [Extensions] 
    Extensions1=1 
    [Extension.1] 
    Type=30 
    NmidPropset={00020D0C-0000-0000-C000-000000000046} 
    NmidInteger=1 
    Value=1000000000000000
    
  2. Скопируйте FromEmailAddress.cfg в папку форм Microsoft Office для определенного языка, расположенную по адресу:
    C:\Program Files (x86)\Microsoft Office\OfficeXX\FORMS\<LanguageID>

    • <OfficeXX> - это папка Office, включающая номер версии (например, Office15 для Office 2013).
    • <LanguageID> - это ваш четырехзначный идентификатор языка (например, 1033 для английского).

      Примечание. Административные права необходимы для сохранения файлов в этой папке.
      Примечание: Office может быть установлен в C:\Program Files если у вас 32-битная ОС или 64-битная версия Office на 64-битной ОС.

  3. В Outlook на вкладке « Файл » ленты нажмите « Параметры».

  4. Нажмите Advanced на левой панели, затем в группе Developers нажмите Custom Forms ...
  5. В диалоговом окне « Параметры » нажмите « Управление формами ...»
  6. В диалоговом окне « Диспетчер форм » нажмите « Установить ...»
  7. Перейдите в папку, в которой вы сохранили файл FromEmailAddress.cfg , выберите его и нажмите « Открыть».
  8. Нажмите кнопку ОК в окне Свойства формы , которая открывается, а затем Закрыть, а затем кнопку OK дважды , чтобы закрыть окно Outlook.

Добавьте к этой статье о stickstick.com информацию о том, как представить действительный адрес электронной почты отправителя в качестве поля.

Шаг Б. Использование настраиваемого поля "С адреса электронной почты" в критериях папки поиска

Эти шаги используют недавно созданное поле в качестве критерия для папки поиска:

  1. На вкладке « Дополнительно » диалогового окна « Критерии папки поиска » щелкните раскрывающийся список « Поле», затем нажмите « Формы».
  2. На левой панели выберите « С адреса электронной почты», нажмите « Добавить» -> « Закрыть».
  3. Снова щелкните раскрывающееся поле « Поле», выберите « От адреса электронной почты», затем нажмите « От адреса электронной почты» во всплывающем меню.
  4. Укажите необходимое условие и значение, затем нажмите « Добавить в список», затем нажмите « ОК», чтобы закрыть диалоговое окно.

Фактические адреса электронной почты To, Cc и Bcc не могут использоваться в качестве критериев для папок поиска ...

Тщательный поиск других предопределенных полей Outlook, полей MAPI, доступных через объектную модель Outlook, и обзор свойств, предоставляемых OutlookSpy, показывают, что нет полей, которые отображают эти адреса электронной почты в виде текста. Существует свойство PR_MESSAGE_RECIPIENTS, но, к сожалению, это объект, который содержит каждого получателя как отдельный элемент. Доступ по умолчанию (с использованием метода Custom Form выше) ничего не возвращает.

...С одним почти бесполезным исключением

Используя VBA из этой статьи на stickstick.com, я смог добавить поле, определяемое пользователем (UDF), к сообщениям, которые содержали одну строку с адресами электронной почты получателя в формате john@example.com, jane@example.com . Однако при выборе пользовательской функции в списке полей расширенных критериев папки поиска доступны только пользовательские функции, определенные в папке «Входящие»:

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

Причины, по которым UDF не работают в критериях папки поиска, описаны здесь, здесь и здесь.

Предопределенные поля остаются "лучшим" решением

Когда дело доходит до полей To:, Cc: и Bcc:, все же лучше использовать предварительно определенные поля в критериях вашей папки поиска и надеяться, что фактический адрес электронной почты является частью отображаемого имени (которое часто ).

0

К сожалению, вы не можете сделать это с помощью папок поиска, извините. В качестве обходного пути вы можете использовать Filtered Views:

  1. Создайте новую папку Outlook View (Просмотр вкладки ленты).
  2. Укажите Фильтр для созданного представления на вкладке SQL:
    "http://schemas.microsoft.com/mapi/proptag/0x5D02001F" LIKE '%@example.com'

Свойство 0x5D02001F является свойством MAPI PR_SENT_REPRESENTING_SMTP_ADDRESS. Вы также можете добавить дополнительные свойства для проверки, используя AND/OR, если это необходимо.

Альтернативный способ (использование пользовательских полей)

  1. Откройте папку "Входящие" и создайте пользовательское поле:
    1.1. На вкладке « Просмотр ленты» нажмите кнопку « Просмотр настроек».
    1.2. В окне « Дополнительные параметры просмотра» нажмите кнопку « Столбцы ...».
    1.3. В окне Показать столбцы нажмите кнопку Новый столбец ....
    1.4. В новом окне Column введите нужное имя (например, "Отправитель Email" без кавычек) и оставить тип и формат как текст.
    1,5. Нажмите OK, OK, OK для подтверждения во всех диалоговых окнах.

  2. Скопируйте свойство 0x5D02001F в свойство Email отправителя для всех сообщений в вашем почтовом ящике любым удобным для вас способом, используя VBA или стороннее программное обеспечение. Вот ключевая часть VBA (если вы собираетесь написать скрипт для копирования свойств):

... ' for each objMailItem get the value of 0x5D02001F property
Set objProp = objMailItem.UserProperties.Add("Sender Email", 1, False)
objProp.Value = ... ' The value of 0x5D02001F property
  1. Создайте пользовательскую папку поиска и укажите критерии на вкладке « Дополнительно »: Поле -> Пользовательские поля в папке « Входящие» -> Электронная почта отправителя содержит @ example.com.

Это в значительной степени из этого. Отлично работает для всего почтового ящика.

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