![如何让 Outlook 2010 显示我收到的邮件的姓名而不是电子邮件地址?](https://linux22.com/image/1441005/%E5%A6%82%E4%BD%95%E8%AE%A9%20Outlook%202010%20%E6%98%BE%E7%A4%BA%E6%88%91%E6%94%B6%E5%88%B0%E7%9A%84%E9%82%AE%E4%BB%B6%E7%9A%84%E5%A7%93%E5%90%8D%E8%80%8C%E4%B8%8D%E6%98%AF%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
一位朋友最近开始给我发短信(通过手机),然后我以电子邮件的形式收到。发送电子邮件地址的格式如下[电子邮件保护],这是 Outlook 2010 显示的发件人姓名。我希望显示发件人的实际姓名。(该姓名不是我收到的邮件的电子邮件标题的一部分。在这些邮件中,“发件人”和“返回路径”字段仅包含发送电子邮件地址。)
我已经为发件人的电子邮件地址设置了一个 Outlook 通讯簿条目,并且在该通讯簿条目中,我为全名、文件为和显示为字段提供了有用的值。但是,当我收到此类消息时,Outlook 仍然只显示发件人的电子邮件地址。
如何告诉 Outlook 2010 当我收到来自[电子邮件保护],它应该显示为来自“Joe TextsTooMuch”吗?
谢谢。
答案1
VBA 可能是您实现此目的的唯一选择。
使用 VBA 的解决方案:
将此简单的 VBA 程序复制到Outlook VBA 项目:
Sub ChangeSenderName(itm As MailItem)
itm.SentOnBehalfOfName = "Joe TextsTooMuch"
itm.Save
End Sub
现在创建一个 Outlook 规则,检查来自 的传入电子邮件[email protected]
。我建议使用名为“发件人地址中包含特定词语“”。
然后对于规则操作,选择“运行脚本'. 将值设置为名为 的脚本ChangeSenderName
。
一旦您保存并启用此规则,任何与发件人地址匹配的传入电子邮件都将被传递给 VBA 代码,然后 VBA 代码将对其进行修改。
关于此解决方案的说明
此代码实际上修改了名为 SentOnBehalfOfName 的字段。因此,它似乎仅在 Outlook 消息视图中生效 - 而不是在您打开单个电子邮件时生效。我研究了更改实际发件人字段,但无法使用 VBA 进行修改。
替代解决方案
当然,最优雅的方法是配置发送电子邮件的服务,但我认为你无法控制这一点。
另一个选择是配置接收电子邮件的邮件服务器,在将邮件发送到您的 Outlook 副本之前修改发件人标头。
答案2
如果电子邮件地址始终相同([电子邮件保护])您可以创建一个联系人并输入地址,然后保存。之后它将显示名称。我发现我无法在工作中使用上面提供的解决方案,因此我没有“保存”联系人,而是“创建”它,然后它会按照我想要的方式显示名称。
答案3
除非您想使用 Garrulinae 的 VBA 解决方案,否则您无法从 Outlook 中执行此操作。Outlook 将根据您收到的电子邮件的格式来处理显示名称。当您回复电子邮件时,联系人条目中的详细信息将用于回复。
答案4
此解决方案在邮件视图中将发件人的电子邮件地址显示为一列解决了 Outlook 中的消息视图问题。
它基于用户定义的表单,必须包含在 Outlook 中的每个视图中。不幸的是,它太长了,无法引用。
我在 Outlook 2010 和 Outlook 2013 上对其进行了测试。