Папка поиска Outlook: поиск по фактическому адресу электронной почты, а не по отображаемому имени
Мне нужна папка поиска Outlook, которая находит электронную почту путем поиска фактического адреса электронной почты отправителя или получателя. Например, если я хочу найти все сообщения от отправителей в домене example.com, я использую критерии поиска From... @ example.com:
Но поиск только возвращает сообщения, где @example.com
появляется в отображаемом имени отправителя (например, От: Джон Доу
Как мне искать электронные письма, основываясь на фактическом адресе электронной почты To/From/CC, даже если этот адрес отсутствует в отображаемом имени?
Что я пробовал:
- Я просмотрел все доступные поля на вкладке " Дополнительно ". Я вижу поля "От", "Кому" и т. Д., Но они работают одинаково.
- Я нашел этот пост, который предлагает поиск в поле "Тема" и теле сообщения... но это очень ненадежно.
- Google.... но есть миллиард результатов, говорящих мне, как сделать то, что я уже делаю.
4 ответа
Мне нужна папка поиска Outlook, которая находит электронную почту путем поиска фактического адреса электронной почты отправителя или получателя.
Можно настроить папку поиска для поиска электронной почты на основе фактического адреса электронной почты отправителя (см. Ниже). Однако невозможно указать фактический адрес электронной почты для полей "Кому", "Копия" или "Скрытая копия". Объяснение почему можно найти в конце этого ответа.
Настройка папки поиска для поиска по фактическому адресу электронной почты отправителя
Примечание. Эти инструкции написаны для Office 2013, но решение должно работать как минимум для Outlook 2007 и более поздних версий.
Шаг А. Добавление настраиваемого поля "Фактический адрес отправителя" в Outlook с помощью формы
Эти шаги создают пользовательскую форму, которая добавляет новое поле в Outlook с фактическим адресом электронной почты отправителя:
Сохраните следующую пользовательскую конфигурацию формы 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
Скопируйте
FromEmailAddress.cfg
в папку форм Microsoft Office для вашего языка, расположенную по адресу: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-разрядной ОС.
В Outlook на вкладке " Файл " ленты нажмите " Параметры".
- Нажмите Advanced на левой панели, затем в группе Developers нажмите Custom Forms...
- В диалоговом окне " Параметры " нажмите " Управление формами..."
- В диалоговом окне " Диспетчер форм " нажмите " Установить..."
- Перейдите в папку, где вы сохранили
FromEmailAddress.cfg
выберите его, затем нажмите " Открыть". - Нажмите " ОК" в открывшемся окне " Свойства формы", затем " Закрыть", затем дважды нажмите " ОК", чтобы закрыть параметры Outlook.
Благодарим эту статью на stickstick.com за информацию о том, как представить фактический адрес электронной почты отправителя в качестве поля.
Шаг Б. Используйте настраиваемое поле "От адреса электронной почты" в критериях папки поиска
Эти шаги используют недавно созданное поле в качестве критерия для папки поиска:
- На вкладке " Дополнительно " диалогового окна " Критерии папки поиска " щелкните раскрывающийся список " Поле", затем нажмите " Формы".
- На левой панели выберите " С адреса электронной почты", нажмите " Добавить" -> " Закрыть".
- Снова щелкните раскрывающийся список Поле, выберите " С адреса электронной почты", затем нажмите " С адреса электронной почты" во всплывающем меню.
- Укажите необходимое условие и значение, затем нажмите " Добавить в список", затем нажмите " ОК", чтобы закрыть диалоговое окно.
Фактические адреса электронной почты To, Cc и Bcc не могут использоваться в качестве критериев для папок поиска...
Тщательный поиск других предопределенных полей Outlook, полей MAPI, доступных через объектную модель Outlook, и обзор свойств, предоставляемых OutlookSpy, показывают, что нет полей, которые отображают эти адреса электронной почты в виде текста. Есть свойство PR_MESSAGE_RECIPIENTS, но, к сожалению, это объект, который содержит каждого получателя как отдельный элемент. Доступ по умолчанию (с использованием метода Custom Form выше) ничего не возвращает.
... с одним почти бесполезным исключением
Используя VBA из этой статьи на slipstick.com, я смог добавить определяемое пользователем поле (UDF) к сообщениям, которые содержали одну строку, содержащую адреса электронной почты получателя в формате john@example.com, jane@example.com
, Однако при выборе UDF в списке полей расширенных критериев папки поиска доступны только те UDF, которые определены в папке "Входящие":
Если сообщения с заполненными пользовательскими полями существуют в папке "Входящие", они будут найдены в папке поиска. Однако такие сообщения, расположенные в других папках, не включаются в результаты. Если ваша папка поиска не заинтересована только в папке "Входящие", это довольно бесполезно.
Причины, по которым UDF не работают в критериях папки поиска, описаны здесь, здесь и здесь.
Предопределенные поля остаются "лучшим" решением
Когда дело доходит до полей To:, Cc: и Bcc:, все же лучше использовать предварительно определенные поля в критериях вашей папки поиска и надеяться, что фактический адрес электронной почты является частью отображаемого имени (которое часто).
Вы не можете выполнять необычный поиск, используя поля "Кому / От / Копия / Скрытая копия" в папках поиска, не создавая настраиваемые формы, но существует обходной путь поиска отправителей в определенном домене с помощью параметра "Почта от определенных людей". (Это также работает для опции "Почта от определенных людей".)
К сожалению, вы не можете сделать это с помощью папок поиска, извините. В качестве обходного пути вы можете использовать Filtered Views:
- Создайте новую папку Outlook View (вкладка "Просмотр ленты").
- Укажите Фильтр для созданного представления на вкладке SQL:
"http://schemas.microsoft.com/mapi/proptag/0x5D02001F" LIKE '%@example.com'
Свойство 0x5D02001F является свойством MAPI PR_SENT_REPRESENTING_SMTP_ADDRESS. Вы также можете добавить дополнительные свойства для проверки, используя AND/OR, если это необходимо.
Альтернативный способ (использование пользовательских полей)
Откройте папку "Входящие" и создайте пользовательское поле:
1.1. На вкладке " Просмотр ленты" нажмите кнопку " Параметры просмотра".
1.2. В окне " Дополнительные параметры просмотра" нажмите кнопку " Столбцы...".
1.3. В окне " Показать столбцы" нажмите кнопку " Новый столбец...".
1.4. В окне " Новый столбец" введите нужное имя (скажем, "Email отправителя" без кавычек) и оставьте " Текст и формат" как текст.
1,5. Нажмите OK, OK, OK для подтверждения во всех диалоговых окнах.Скопируйте свойство 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
- Создайте пользовательскую папку поиска и укажите критерии на вкладке " Дополнительно ": Поле -> Пользовательские поля в папке " Входящие" -> Email отправителя содержит @example.com.
Это в значительной степени из этого. Отлично работает для всего почтового ящика.
Пользователь Worthwelle дал хороший ответ о том, как определить домен отправителя, поэтому настоящей проблемой является проверка домена получателя. В то времяaccepted
ответ действительно создает метод для этого, я бы описал его как немного сложный и недоступный для понимания большинства пользователей.
Обходной путь с тем же результатом с использованием правил/категорий
Чтобы решить сценарий использования, представленный в этом вопросе, вот способ убедительно и последовательно иметь ссылку на папку поиска на все электронные письма, в которых содержатся from/to/cc.@example.com
домен.
1) Создайте два правила
Это необходимо сделать в веб-интерфейсе Outlook, нажав «НАСТРОЙКИ» , а затем «ПРОСМОТР ВСЕ НАСТРОЙКИ OUTLOOK» и выбрав «ПРАВИЛА» . См. настройки ниже, но обратите внимание:
- Мы помечаем тегами все сообщения, в которых у получателя есть домен @example.com.
- Второе правило, чтобы отметить, если
sender
адрес содержит @example.com - Это импорт в
Run Rule Now
или зайдите в Outlook и выполните поиск, а затем отметьте. Это обеспечит правильную пометку всех предыдущих сообщений. - В дальнейшем все полученные сообщения, имеющие этот домен, будут классифицироваться с этим тегом.
2) Создать папку поиска на основе тега
Это должно быть довольно просто. Создайте новую папку поиска, затем выберите запросCategorized Mail
вOrganizing Mail
раздел. Затем нажмитеchoose
а затем выберите соответствующий тег, для которого правило было настроено на предыдущем шаге (в данном случае exampleTag).
В конечном счете, кажется странным, что папка поиска не может дублировать результаты, которые может дублировать панель поиска, но это делает это за меня.