已添加:
[COM_DOT_NET]
延长= php_com_dotnet.dll
在php.inI文件的末尾
这是我正在使用的代码:
if (!defined("olMailItem")) define("olMailItem",0);
$objApp = new COM ( "Outlook.Application" ) or die ( "Cannot Load Outlook.Application" );
$namespace = $objApp->GetNamespace("MAPI"); // or MAPI.Session
$namespace->Logon();
$myItem = $objApp->CreateItem (olMailItem);
$myItem->To = $email;
$myItem->SentOnBehalfOfName = "IT.Helpdesk@mycompany.com";
$myItem->Subject = "Notification: application form submitted successfully.";
$myItem->Body ="Hi " . $realname .",
You have successfully submitted the applicant form for (".$firstname." , ".$lastname.")
The application has been sent to the respective managers for approval.
Thank you,
Applicant Portal";
$myItem->Send ();
完整错误消息:
致命错误:未捕获的异常'com_exception',消息'无法创建COM对象`Outlook.Application':访问被拒绝。 '在C:\ inetpub \ wwwroot \ doForm.php:268堆栈跟踪:#0 C:\ inetpub \ wwwroot \ doForm.php(268):com-> com('Outlook.Applica ...')#1在第268行的C:\ inetpub \ wwwroot \ doForm.php中抛出{main}
答案 0 :(得分:0)
从PHP自动化Outlook并不是一个好主意。 Considerations for server-side Automation of Office文章声明如下:
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行Office时,可能会出现不稳定的行为和/或死锁。
正如您所看到的,不支持这种自动化Outlook的方式。
答案 1 :(得分:0)
我连续两天寻找解决方法。我的应用程序工作正常,突然我偶然发现同样的异常。
问题是Outlook和我的Apache服务器在不同的权限下运行(一个用户,另一个用作管理员)。我作为用户运行,一切都恢复正常。