从php发送邮件使用Outlook 2010

时间:2014-04-29 12:50:22

标签: php email outlook

我尝试通过已安装的Outlook 2010客户端从我的PHP应用程序发送邮件 到目前为止,我已经尝试this建议,评价最高的答案对我没有用。 然后我添加了

[COM_DOT_NET]
extension=php_com_dotnet.dll

php.ini(C:/ xampp / php)的末尾。

我还检查了EnableDCOM的注册表,它设置为'Y'

这是我使用的代码:

<?php
if (!defined("olMailItem")) {define("olMailItem",0);}
$oApp  = new COM("Outlook.Application") or die('error');
$oMsg = $oApp->CreateItem(olMailItem);
$oMsg->Recipients->Add("xxx@xxx.org");
$oMsg->Subject=$subject;
$oMsg->Body=$message;
$oMsg->Save();
$oMsg->Send();
?>

完整错误消息:

  

警告:未捕获的异常&#39; com_exception&#39;消息&#39;失败   创建COM对象`Outlook.Application&#39;:Aufruf wurde durch   Aufgerufenen abgelehnt。 &#39;在C:\ projekt_dreiskaen \ mailtest.php:3 Stack   跟踪:#0 C:\ projekt_dreiskaen \ mailtest.php(3):   com-&gt; com(&#39; Outlook.Applica ...&#39;)#1 {main}引入   第3行的C:\ projekt_dreiskaen \ mailtest.php

     

致命错误:超过30秒的最长执行时间

我在大型企业Windows域中使用Win 7 Enterprise,使用本地管理员权限运行xampp。大约15名用户需要从我的应用程序发送电子邮件。

任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

对我来说,下一个代码只是开箱即用:

<?php
$subject="This is a test message";

$message="This is a Body Section now.....! :)";

$to="someaddress@somedomain.com";

// starting outlook

**com_load_typelib("outlook.application");**

if (!defined("olMailItem")) {define("olMailItem",0);}

$outlook_Obj = new COM("outlook.application") or die("Unable to start Outlook");

//just to check you are connected.

echo "Loaded MS Outlook, version {$outlook_Obj->Version}\n";

$oMsg = $outlook_Obj->CreateItem(olMailItem);

$oMsg->Recipients->Add($to);

$oMsg->Subject=$subject;

$oMsg->Body=$message;

$oMsg->Save();

$oMsg->Send();

?> 

答案 1 :(得分:0)

我认为错误(Maximum execution time of 30 seconds exceeded...)非常有说服力 - 很可能Outlook正在显示个人资料选择对话框,并且没有任何人可以解雇它。

您的代码是否在服务(例如IIS)下运行?无法从服务中使用Outlook。