1
if (!defined(‘olMailItem’)) define(“olMailItem”,0);
$objApp = new COM(“Outlook.Application”);
$myItem = $objApp->CreateItem(olMailItem);
$myItem->To=’xxxx@xxx.com’;
$myItem->SentOnBehalfOfName = ‘yyy@xxyyx.com’;
$myItem->Subject=”This is a test”;
$myItem->Body=”This is a Body Section now…..!”;
$myItem->Send();

我得到这个错误

致命错误:在 D:\NotEncrypted\xampp\htdocs\copper\system\modules\projects\index.php 第 11251 行 (!) com_exception: 错误 [0x80004004] D:\ NotEncrypted\xampp\htdocs\copper\system\modules\projects\index.php 在第 11251 行

谢谢大家的评论和帮助。。

4

2 回答 2

0

很可能您的 Outlook 组件服务没有运行

  Start -> run -> dcomcnfg.exe 

看看它是否在那里

MAPI.Session 如果可用,您还需要检查您的 Windows 注册表

 Start -> Run -> HKEY_CLASSES_ROOT  -> Outlook.Application -> MAPI.Session 

如果找不到,请使用本教程

http://www.digiways.com/articles/php/outlook/

例子

set_time_limit(10);

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

try {
    $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 = "xxxx@xxx.com";
    $myItem->SentOnBehalfOfName = "yyy@xxyyx.com";
    $myItem->Subject = "This is a test";
    $myItem->Body = "This is a Body Section now…..!";
    $myItem->Send ();

} catch ( Exception $e ) {
    var_dump ( $e->getMessage () );
    debug_print_backtrace ();
}

我希望它有帮助

于 2012-04-25T20:40:18.327 回答
0

我刚刚从这个页面找到了另一个解决方案:http ://forums.devshed.com/php-development-5/php-com-automating-outlook-46167.html

基本上 PHP 没有类似的常量olMailList,所以你必须通过值来引用它。因此,要使您当前的脚本正常工作,请更改此行:

$myItem = $objApp->CreateItem(olMailItem);

到:

$myItem = $objApp->CreateItem(0);

这对我的情况很好。

于 2014-08-14T19:55:36.833 回答