Уже добавлено:
[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 = "[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 ();
Полная ошибка msg:
Неустранимая ошибка: Не удалось исключить "com_exception" с сообщением "Не удалось создать COM-объект" Outlook.Application ": доступ запрещен. 'в C:\inetpub\wwwroot\doForm.php: 268 Трассировка стека: # 0 C:\inetpub\wwwroot\doForm.php(268): com-> com (' Outlook.Applica... ') # 1 {main} выбрано в C:\inetpub\wwwroot\doForm.php в строке 268
Я искал обходной путь в течение двух дней подряд. Мое приложение отлично работало, и вдруг я наткнулся на то же исключение.
Проблема заключалась в том, что Outlook и мой сервер Apache выполнялись под разными правами (один - как пользователь, другой - администратор). Я побежал и как пользователь, и все вернулось к норме.
Автоматизация Outlook с PHP - это не очень хорошая идея. В соображениях для статьи " Автоматизация Office" на стороне сервера указано следующее:
Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office от любого бездействия, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может проявлять нестабильное поведение и/или тупиковой ситуации, когда Office запущен в этой среде.
Как вы можете видеть, такой способ автоматизации Outlook не поддерживается.