Уже добавили:
[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 из PHP не очень хорошая идея. Особенности серверной автоматизации Office В статье говорится следующее:
В настоящее время Microsoft не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из каких-либо необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и / или или тупик, когда Office работает в этой среде.
Как вы можете видеть, этот способ автоматизации Outlook не поддерживается.
Я искал обходной путь в течение двух дней подряд. Мое приложение работало отлично, и вдруг я наткнулся на то же исключение.
Проблема заключалась в том, что Outlook и мой сервер Apache работали с разными правами (один как пользователь, а другой как администратор). Я работал как пользователь, и все вернулось к норме.