2015-01-06 50 views
0

2010电邮已添加:发送Outlook中使用PHP

[COM_DOT_NET]

延长= php_com_dotnet.dll

在php.ini文件的末尾

这是我的代码“M使用:

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 = "[email protected]"; 
    $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 {主}抛在C:\ inetpub \ wwwroot \ doForm.php在线268

回答

0

从PHP自动化Outlook不是一个好主意。该Considerations for server-side Automation of Office文章指出以下几点:

微软目前并不提倡,不支持,Microsoft Office应用程序自动化从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM,和NT服务),因为Office在此环境中运行时可能会出现不稳定的行为和/或死锁。

如您所见,不支持这种自动化Outlook的方式。

0

我找了连续两个天解决方法。我的应用程序工作完美,突然间我偶然发现了同样的例外情况。

问题是Outlook和我的Apache服务器在不同的权限下运行(一个是用户,另一个是管理员)。我以用户身份运行,一切都恢复正常。

+0

不要在服务使用Outlook。不要。它保证迟早会失败。 –