【问题标题】:Matlab Outlook COM interface: lookup contactMatlab Outlook COM 接口:查找联系人
【发布时间】:2018-09-21 02:02:35
【问题描述】:

我想通过 Outlook COM(或任何其他可行/可能的方式)查找联系人,尤其是用户名。

这是我开始的,我有点迷茫,因为 MathWorks 似乎没有直接记录 COM 函数。

%get activeX element
outlook=actxserver('outlook.Application'); 
%get default folder
defaultFolder=outlook.GetNamespace('mapi').GetDefaultFolder('olFolderInbox');

和 c++ 中的引用:Search Outlook Contact using COM?

如何访问联系人/电子邮件单元格数组?

感谢您的帮助

【问题讨论】:

  • “查找联系人”是什么意思?显示 Outlook 通讯簿?
  • 是的,例如:查找联系人姓名,显示电子邮件地址。基本上,一旦整个地址簿可以通过一些变量/单元格数组(?)访问,这应该很容易做到
  • 我还是不太明白 - 你想向最终用户显示通讯录并让他/她选择一个条目吗?或者,给定一个名称,将该名称解析为地址条目,以便您可以读取其电子邮件地址等?
  • 所以 1) 我想将当前 Outlook 用户的所有通讯录放在一个变量中。地址簿通常包括“名字”、“姓名”、“电子邮件地址”等字段。2)我想在 matlab 中查询此地址簿以自动编写电子邮件/将电子邮件名称解析为用户名
  • "所有地址簿...在一个变量中" 有地址簿提供商可以包含成千上万甚至数百万的条目。

标签: matlab outlook com


【解决方案1】:

如果要解析名称,请调用Namespace.CreateRecipient(返回Recipient 对象)。在访问其属性(例如 Recipient.Name)之前调用 Recipient.Resolve

如果您正在创建消息,您可以使用MailItem.Recipients.ResolveAll 解析收件人。

在 VB 中:

set app = CreateObject("Outlook.Application")
set ns = app.GetNamespace("MAPI")
ns.Logon
set recip = ns.CreateRecipient("Joe The User")
if recip.Resolve Then
  MsgBox recip.Address
End If

【讨论】:

  • 我不清楚如何拨打Namespace.CreateRecipient。我该如何做到这一点?
  • 我应该提到我想在 Matlab 中实现这一点 - 它在标题中并暗示在问题中
  • 编程语言无关紧要 - Outlook 对象模型不知道也不关心是谁在调用它。
  • 我关心 - 我需要它是 matlab 代码,否则我不明白如何将它实现到 matlab 脚本中。没关系,我猜这个问题应该结束了。
猜你喜欢
  • 2010-10-23
  • 1970-01-01
  • 2015-03-14
  • 2018-04-10
  • 1970-01-01
  • 2017-07-17
  • 2010-10-28
  • 2015-01-29
  • 2021-11-02
相关资源
最近更新 更多