我正在尝试与com_load_typelib(“outlook.application”)进行PHP/Outlook集成。目前,我可以发送电子邮件,但有没有办法读取一些特定的文件夹中的电子邮件,并将部分内容放在excel文件中?
现在,我可以用以下代码计算收件箱中元素的数量:
$olFolderInbox = 6;
com_load_typelib("Outlook.Application");
echo "Outlook loaded...";
$Outlook = new COM("Outlook.Application") or die("Unable to load Outlook COM");
echo "com object created...";
$OutlookMAPI_Ns = $Outlook->GetNamespace("MAPI") or die("Unable to get Namespace");
echo "namespace created...";
$def_fld_inbox = $OutlookMAPI_Ns->GetDefaultFolder($olFolderInbox) or die("Unable to get olFolderInbox");
echo "got default folder.<br>";
$items_in_folder = $def_fld_inbox->Items->Count();
echo "Items in Inbox: $items_in_folder";
$Outlook->Quit();
echo "Outlook Closed.";如何处理特定的SubFolders并解析某些信息并将部分内容放入excel文件?
发布于 2022-09-05 14:36:34
如果您的代码在服务器端运行,Outlook无法从服务器端自动运行.注意以下信息:
Microsoft目前不建议也不支持来自任何无人值守、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)的Microsoft应用程序的自动化,因为在此环境中运行Office时,Office可能会出现不稳定的行为和/或死锁。如果您正在构建在服务器端上下文中运行的解决方案,则应尝试使用已为无人值守执行而安全的组件。或者,您应该尝试找到允许至少部分代码运行客户端的替代方案。如果您使用来自服务器端解决方案的Office应用程序,则该应用程序将缺乏许多成功运行所需的功能。此外,您将承担风险与您的整体解决方案的稳定性。
在办公服务器端自动化的几点思考文章中阅读更多有关这方面的内容。
作为一种可能的解决办法,您可以考虑使用Graph (对于Office 365)和EWS (用于),请参见探索Exchange中的EWS托管API、EWS和web服务。
https://stackoverflow.com/questions/73598887
复制相似问题