我尝试通过已安装的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名用户需要从我的应用程序发送电子邮件。
任何帮助将不胜感激:)
答案 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。