我有一个包含大量电子邮件的.xls文件,我想通过matlab添加到outlook。处理.xls文件没问题。
我发现可以通过matlab发送邮件
h = actxserver('outlook.Application'
我认为我可以将此用于我的目的。然而,我完全不熟悉ActiveX / COM接口,以及如何使用它。
我尝试使用get(h),但这并没有给我任何有用的信息。
两个问题。具体来说1)我如何使用Matlab添加联系人。
其次,更一般的是,我怎样才能找到我能做些什么?' h'在这种情况下?我看到有人使用h.Subject
或h.To
我怎样才能找到可以用h做的可能的东西(如主题或者)?
答案 0 :(得分:1)
我仍然建议使用outlook发送电子邮件,以便您拥有所有最新的功能,并且MS不断更新Office 365,这不是第一次MS接口被Microsoft更新搞砸了。
在任何情况下,你是对的,有一个可以使用的活动X界面,在你使用之前,你必须使用管理员权限运行matlab(如果你在Windows上)并确保你有一个Matlab版本> 2010 rb(我正在测试的版本)。
如果您使用的是h = actxserver(' outlook.Application'),那么这就是创建一个具有给定应用程序ID的OLE服务器,因此get()不会获取除版本号以外的任何内容服务器ID等。但是,它应该使您能够调用属于该服务器的功能(即outlook.Application的功能,所以一般来说,发送电子邮件:
mail = h.CreateItem('olMail');
mail.Subject = subject;
mail.To = to;
mail.BodyFormat = 'olFormatHTML';
mail.HTMLBody = body;
% Add attachments, if specified.
if nargin == 4
for i = 1:length(attachments)
mail.attachments.Add(attachments{i});
end
end
% Send message and release object.
mail.Send;
h.release;
请注意,上面的代码来自Mathworks,我没有写过它们,可能永远不会尝试......但它已经过测试可以在我的本地电台上运行。
要回答第二个问题,您可以调用哪些函数取决于outlook.Application中可用的函数,这可以从microsoft application dev获得,它们是您可以从对象调用的所有函数。
另请注意,所有参数都通过OLE作为STRINGS传递给Object,因此这里没有Matlab功能,如果你想做一些聪明的事情,你不能在使用Object的调用中使用任何Matlab功能 - 你需要将VB语言作为字符串传递给Object。
答案 1 :(得分:1)
要添加联系人,您需要通过ActiveX控件创建ContactItem
object:
h = actxserver('outlook.Application');
newContact = h.CreateItem('olContactItem');
newContact.FirstName = 'John';
newContact.LastName = 'Smith';
newContact.Email1Address = 'john.smith@email.email';
newContact.Save();
% newContact.Display; % To check your work
h.release; % Close the ActiveX interface
有关您可以修改的其他字段的列表,请参阅ContactItem
properties page。
对于一般性问题,只需要在Outlook's Object Model Reference
中进行一些探讨