Папка поиска Outlook: поиск по фактическому адресу электронной почты, а не по отображаемому имени

2782
Twisty Impersonator

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

Папка поиска Outlook: поиск по фактическому адресу электронной почты, а не по отображаемому имени

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

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


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

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

2 ответа на вопрос

2
Twisty Impersonator

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

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

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

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

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

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

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

    [Description]  MessageClass=IPM.Note CLSID=  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=  NmidInteger=1  Value=1000000000000000 
  2. Скопируйте в FromEmailAddress.cfgспециальную папку Microsoft Office Forms, расположенную по адресу:
    C:\Program Files (x86)\Microsoft Office\OfficeXX\FORMS\<LanguageID>

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

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

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

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

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

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

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

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

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

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

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

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

enter image description here

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

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

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

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

Если кто-нибудь найдет решение для выставления фактического адреса электронной почты полей To :, Cc: или Bcc: таким образом, чтобы их можно было использовать в качестве критерия для папки поиска, я хотел бы услышать об этом. Многие другие тоже найдут это полезным. Twisty Impersonator 7 лет назад 0
Отличный совет, но учтите, что это адрес электронной почты отправителя. Это не всегда совпадает с адресом электронной почты От (я знаю, это смешно). TastyWheat 6 лет назад 0
@TastyWheat Можете ли вы дать мне пример того, что вы имеете в виду? Вы имеете в виду тот факт, что адрес электронной почты отправителя может быть установлен по желанию отправителя? Или что-то другое? Twisty Impersonator 6 лет назад 0
В некоторых случаях я получаю электронные письма с Отправителем jdoe@mailserver.com, но электронное письмо от noreply@someservice.com. Это сделано потому, что Джон Доу предпринял действие на someservice.com, которое вызвало электронную почту, хотя сам он не писал и не отправлял электронную почту. TastyWheat 6 лет назад 0
@TastyWheat Вы правы. Исходный вопрос стремится работать с адресом отправителя, игнорируя информацию «От / Отображаемое имя / Отправлено от имени». Twisty Impersonator 6 лет назад 0
Не работает с «не содержит» (Outlook 2016) janiv 6 лет назад 0
-1
thims

К сожалению, вы не можете сделать это с помощью папок поиска, извините. В качестве обходного пути вы можете использовать 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. На Показать столбцы окна щелкните столбец New ... кнопку.
    1.4. На новом столбце окна введите нужное имя (например, «Отправитель 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.

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

Это влияет только на одну папку. Мне нужно найти электронную почту, расположенную по всему почтовому ящику. Twisty Impersonator 7 лет назад 0
Нет, извини. Вы можете только создать представление «для всех папок в почтовом ящике» и применить его, после этого нажмите на каждую папку, чтобы увидеть электронные письма. thims 7 лет назад 0
В качестве альтернативы вы можете создать пользовательское свойство пользователя Outlook и скопировать адрес электронной почты отправителя в это свойство для всех ваших сообщений. После этого вы сможете использовать это свойство пользователя в критериях папки поиска. thims 7 лет назад 0
Нет, попробовал это. UDF прямо не работают в папках поиска (для критериев). Настолько глуп. Twisty Impersonator 7 лет назад 0
Что вы подразумеваете под "прямо не работают"? thims 7 лет назад 0
Папки поиска, в отличие от «настоящих» папок, не могут иметь определяемые в них пользовательские функции (см. Этот [post] (https://social.msdn.microsoft.com/Forums/vstudio/en-US/570feb56-b010-4506-bd2f- 967ef0eb386e / потребность-поиск-фальцевально-просмотр к шоу-User-Defined-свойства? форум = VSTO)). В поле выбора Поля у вас ** есть ** пользовательские поля * в папке «Входящие» *, и вы можете выбрать любые пользовательские функции, определенные в папке «Входящие», но папка поиска найдет соответствующие сообщения, только если они * в Входящие *. Я не нашел способа доступа к UDF в других папках. Twisty Impersonator 7 лет назад 0
@ Твисти, они отлично работают в моем случае для папок поиска по всем почтовым ящикам. Просто к сведению: Outlook сохраняет UDF в самом Магазине при их создании в папке «Входящие». После этого вы можете легко использовать эту UDF в папке поиска, чтобы найти по всему почтовому ящику. Я обновлю ответ в ближайшее время, предоставив детали. thims 6 лет назад 0
Интригующий. Я хотел бы знать, какие шаги вы предприняли, чтобы сделать это. Вы заинтересованы в том, чтобы поделиться этим (в чате)? Twisty Impersonator 6 лет назад 0
Я только обновил ответ, чтобы включить детали. thims 6 лет назад 0
Отлично, я попробую, когда у меня будет возможность. Twisty Impersonator 6 лет назад 0