在客户端计算机上使用 PHP 打开 Outlook



我想在客户端计算机上使用php打开Outlook。 我已经有PHP代码来打开Outlook窗口。

当前场景:我可以在本地服务器(本地机器(上使用PHP打开Outlook。 说本地主机网址:http://localhost/openOutlook/index.php 它打开了代码可用的系统/服务器的前景。 这意味着我的本地系统中有代码。通过运行该代码,我可以完美地打开 outlook。

我正在使用XAMPP。PHP 7.1.视窗 10.办公室 2013。(在我的本地系统中( XAMPP, PHP 7.1, 服务器 2008 R2 (在服务器上( 默认邮件客户端:展望

但是当我在 Windows 服务器 2008 R2 上上传相同的代码时,它会在该服务器上打开 outlook。 这意味着,网址:http://serverName/openOutlook/index.php。如果我从任何系统访问此链接,而不是 Ii 仅在服务器本身上打开 outlook。
理想情况下,它应该在客户的系统中打开前景。

我检查了一下:这不是服务器权限问题。

我想要的:我想在访问该链接的客户端计算机上使用PHP打开Outlook。 (http:serverName/openOutlook/index.php(

注意: 我已启用:扩展名=php_com_dotnet.dll

我已经提出了许多链接和问题来解决。但不幸的是,没有什么帮助我。

这是我的简单代码:

<?php
com_load_typelib('Outlook.Application');
$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 = $div_wise_value['emails'];
$myItem->Subject = "Mail subject"; 
$myItem->HTMLBody = "mail body";
$myItem->Display();
?>

是否可以在访问链接的任何系统上打开 Outlook?
如果这是不可能的,那么我可以使用什么其他方法?

任何帮助,不胜感激。

谢谢。

这是不可能的(至少,不是以你想要的方式(。在服务器上运行的 PHP 代码可以访问服务器上的 COM 对象。您正在尝试访问客户端上的 COM 对象。

从理论上讲,您可以使用远程COM调用该计算机上的函数来获取有关连接计算机IP地址的信息,但几乎每个防火墙都会尝试阻止它(有充分的理由 - 您正在尝试远程控制计算机(。

您最好尝试通过HTML或javascript执行此操作 - 这里有一个适用于某些电子邮件客户端的示例: http://resources.elixiter.com/how-to/how-to-pre-populate-the-subject-line-and-body-in-mailto-generated-emails

如果你真的想要这样做(在客户端上打开Outlook(,ActiveX就是为了做这种事情而设计的。但是,老实说,这不是一个好主意。例如,即使您可以执行此操作,如果此人没有安装 Outlook,会发生什么情况?如果他们不在Windows上怎么办?HTML和JavaScript解决方案将在更多的系统上工作。

PHP 在服务器上运行。要在客户端上运行代码,您几乎仅限于 IE 中的 JS,并且仅当您在受信任列表中并因此被允许创建 COM 对象时。

在服务器上创建一个 EML 文件(包含 HTML 和所有文件(并让用户下载它。客户端的 Outlook 将很乐意打开并显示它。不要忘记设置X-Unsent:1MIME 标头,以确保它显示为 Outlook 未发送。

最新更新