Outlook 搜索文件夹:搜索实际电子邮件地址,而不是显示名称

Outlook 搜索文件夹:搜索实际电子邮件地址,而不是显示名称

我需要一个 Outlook 搜索文件夹,通过搜索发件人或收件人的实际电子邮件地址来查找电子邮件。例如,如果我想查找来自域中发件人的所有邮件示例.com,我使用搜索条件来自...@example.com

在此处输入图片描述

但搜索仅返回@example.com发件人中出现的邮件显示名称(例如来自:约翰·多伊 <[电子邮件保护]>)。如果姓名中不包含其电子邮件地址,则电子邮件不会出现在搜索结果中。

如何根据实际的收件人/发件人/抄送电子邮件地址搜索电子邮件,即使显示名称中没有该地址?


我尝试过的:

  • 我已经查看了先进的选项卡。我看到了“发件人”、“收件人”等字段,但它们的工作方式相同。
  • 我发现这个帖子,建议搜索主题字段和邮件正文……但这非常不可靠。
  • 谷歌......但有十亿个结果告诉我如何做我正在做的事情。

答案1

我需要一个 Outlook 搜索文件夹,通过搜索发件人或收件人的实际电子邮件地址来查找电子邮件。

可以配置搜索文件夹以根据发件人的实际电子邮件地址查找电子邮件(见下文)。但是,不是可能会暴露收件人、抄送或密送字段的实际电子邮件地址。原因的解释可在本答案的末尾找到。

配置搜索文件夹以搜索发件人的实际电子邮件地址

笔记: 这些说明是针对 Office 2013 编写的,但该解决方案至少适用于 Outlook 2007 及更高版本。

步骤 A:使用表单向 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 的 Forms 文件夹,位于:
    C:\Program Files (x86)\Microsoft Office\OfficeXX\FORMS\<LanguageID>

    • <OfficeXX>是包含版本号的 Office 文件夹(例如Office15Office 2013)
    • <LanguageID>是您的 4 位数语言 ID(例如1033英语)。

      笔记: 需要管理权限才能将文件保存到此文件夹。
      笔记: 如果您有 32 位操作系统,则可以安装 Office;C:\Program Files如果您有 64 位操作系统,则可以安装 64 位版本的 Office。

  3. 在 Outlook 中,文件单击功能区选项卡选项

  4. 点击先进的在左侧窗格中,然后在开发人员群组点击自定义表格... 在此处输入图片描述
  5. 在里面选项对话框中,点击管理表格...
  6. 在里面表单管理器对话框中,点击安装... 在此处输入图片描述
  7. 导航到保存FromEmailAddress.cfg文件的文件夹,选择它,然后单击打开
  8. 点击好的表单属性然后打开窗口关闭, 其次是好的两次关闭Outlook 选项

归功于此slipstick.com 文章有关如何将发件人的实际电子邮件地址显示为字段的信息

步骤 B:在搜索文件夹的条件中使用自定义“发件人电子邮件地址”字段

以下步骤利用新创建的字段作为搜索文件夹的条件:

  1. 先进的选项卡搜索文件夹条件对话框中,单击场地下拉列表,然后点击形式...
    在此处输入图片描述
  2. 在左侧窗格中选择发件人电子邮件地址, 点击添加 ->然后关闭在此处输入图片描述
  3. 点击场地再次下拉,指向发件人电子邮件地址然后点击发件人电子邮件地址在弹出菜单上。
    在此处输入图片描述
  4. 指定所需的条件和值,然后单击添加到列表, 然后好的关闭对话框。 在此处输入图片描述

实际的收件人、抄送人和密送电子邮件地址不能用作搜索文件夹的条件……

彻底搜索 Outlook 的其他预定义字段,可通过 Outlook 的对象模型获取 MAPI 字段,以及对所暴露属性的审查展望间谍显示没有显示这些电子邮件地址的字段作为文本.有公共消息接收者属性,但不幸的是,这是一个将每个收件人作为单独项目包含的对象。本机访问(使用上面的自定义表单方法)不会返回任何内容。

...有一个几乎无用的例外

使用此处的 VBAslipstick.com 文章我能够将用户定义字段 (UDF) 添加到包含单个字符串的消息中,该字符串包含以下格式的收件人电子邮件地址。但是,在搜索文件夹高级条件的字段列表中选择 UDF 时,只有收件箱中定义的 UDF 可用:[email protected], [email protected]

在此处输入图片描述

如果收件箱中存在填充了自定义字段的邮件,搜索文件夹就会找到它们。但是,位于其他文件夹中的此类邮件不会包含在结果中。除非您的搜索文件夹只对收件箱感兴趣,否则这毫无用处。

记录了 UDF 在搜索文件夹标准中不起作用的原因这里这里这里

预定义字段仍然是“最佳”解决方案

当谈到到:抄送:, 和密送:字段,最好还是使用搜索文件夹条件中的预定义字段,并且希望实际的电子邮件地址是显示名称的一部分(通常是)。

答案2

如果不创建自定义表单,您无法使用“搜索文件夹”中的“收件人/发件人/抄送/密件抄送”字段进行花哨的搜索,但是解决方法使用“来自特定人员的邮件”选项查找特定域中的发件人。(这也适用于“来自和发送给特定人员的邮件”选项。)

  1. 创建搜索文件夹时,选择来自特定人员的邮件在“新搜索文件夹”对话框中。然后单击选择…按钮

    新建搜索文件夹对话框

  2. 在里面来自 ->框中,输入要搜索的域名,格式如下:@domain.com。您可以用分号 ( ) 分隔多个域名,以包含多个域名;

    选择姓名对话框

答案3

遗憾的是,您无法使用搜索文件夹执行此操作。作为一种解决方法,您可以使用过滤视图:

  1. 创建一个新的 Outlook 文件夹视图(视图功能区选项卡)。
  2. 为 SQL 选项卡上创建的视图指定过滤器:
    "http://schemas.microsoft.com/mapi/proptag/0x5D02001F" LIKE '%@example.com'

0x5D02001F属性是 PR_SENT_REPRESENTING_SMTP_ADDRESS MAPI 属性。如果需要,您还可以添加更多属性以使用 AND/OR 进行检查。

替代方法(使用用户定义字段)

  1. 打开收件箱并创建用户定义字段:
    1.1. 在看法单击功能区选项卡查看设置按钮。1.2
    . 在高级视图设置窗口单击列...按钮。1.3
    . 在显示列窗口单击新专栏...按钮。1.4
    . 在新专栏窗口中输入所需的名称(例如,“发件人电子邮件”,不带引号),然后离开类型格式作为文本.
    1.5. 点击好的好的好的在所有对话框中确认。

  2. 将 0x5D02001F 属性复制到发件人电子邮件您可以使用 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。

差不多就是这样了。完美适用于整个邮箱。

答案4

用户 Worthwelle 就如何识别发件人的域名给出了一个很好的答案,因此真正的挑战是为收件人的域名建立测试。虽然答案accepted确实创建了一种方法来做到这一点,但我认为它有点复杂,超出了大多数用户的理解范围。

使用规则/类别解决相同结果

为了解决这个问题中提出的用例场景,这里有一种方法可以确定并一致地让搜索文件夹引用所有来自/到/抄送包含@example.com域的电子邮件。

1)创建两条规则

这些操作应在 Outlook Web 界面中完成,方法是单击设置进而查看所有 Outlook 设置并选择规则。请参阅下面的设置,但请注意:

  • 我们正在标记所有收件人拥有 @example.com 域名的邮件
  • 第二条规则标记sender地址是否包含@example.com
  • 将其导入Run Rule Now或进入 Outlook 并进行搜索然后标记。这将确保所有以前的消息都已正确标记。
  • 今后收到的所有包含此域的消息都将使用此标签进行分类。

在此处输入图片描述

2)根据标签创建搜索文件夹

Categorized Mail这应该很简单。创建一个新的搜索文件夹,然后选择部分中的提示Organizing Mail。然后单击choose并选择上一步中设置规则的相应标签(在本例中为 exampleTag)。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

最终,搜索文件夹无法复制搜索栏可以复制的结果,这似乎很奇怪,但这可以帮我完成。

相关内容