2017-08-04 87 views
-1

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

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

我正在使用XAMPP。 PHP 7.1。 10.视窗2013处(在我的本地系统) XAMPP,PHP 7.1,服务器2008 R2(在服务器上) 默认邮件客户端:后市

但是,当我上载的Windows Server 2008 R2相同的代码,IT OPENS在该服务器上展望它自己。 这意味着,网址:http://serverName/openOutlook/index.php。如果我从任何系统访问此链接,而不是仅在服务器本身上打开Outlook的前景。
理想情况它应该打开客户端系统的前景。

我检查:它不是服务器或其他许可的问题。

我想要什么: 我想在访问该链接的客户机上使用PHP打开Outlook。 (HTTP:服务器/ 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(); 
?> 

是否有可能从打开该链接被访问任何系统上前景如何?
如果这不可能,比我可以使用其他方法?

任何帮助表示赞赏。

谢谢。

+0

我也使用过这个:Click here to mail。但它不提供将HTML标记或内容作为电子邮件正文传递的功能。电子邮件正文中只允许使用简单的文字。此外,我必须应用许多setTimeout来打开多个Outlook窗口。 –

回答

0

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

理论上,您可以使用远程COM调用该机器上的功能,但是几乎每个防火墙都会尝试阻止(有充分的理由 - 您试图远程控制机器)。

你好得多尝试通过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解决方案将在更多系统上运行。

0

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

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

相关问题