2017-08-04 28 views
-1

クライアントマシンでphpを使用してOutlookを開きたいとします。 私は既にOutlookのウィンドウを開くPHPコードを持っています。クライアントマシン上でphpを使用してOutlookを開く

現在のシナリオ: 私はローカルサーバ(ローカルマシン)上でPHPを使用してOutlookを開くことができます。 localhost url:http://localhost/openOutlook/index.php コードが利用できるシステム/サーバーの見通しを開きます。 私は自分のローカルシステムにコードがあることを意味します。そのコードを実行することで、私は見通しを完全に開くことができます。

私はXAMPPを使用しています。 PHP 7.1。 (私のローカルシステムで)は、Windows 10のOffice 2013 XAMPP、PHP 7.1、サーバー2008 R2 デフォルトのメールクライアント(サーバー上):見通し

しかし、私は、Windows Server 2008 R2上で同じコードをアップロードし、ITをそのサーバー上のOPENS見通しは自己です。 URL:http://serverName/openOutlook/index.phpを意味します。 Ii以外のシステムからこのリンクにアクセスすると、サーバー自体の見通しだけが開きます。
理想的には、クライアントのシステムで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タグやコンテンツをメール本文として渡す機能は提供していません。電子メール本文には単純なテキストのみが許可されます。また、複数のOutlookウィンドウを開くために、多くのsetTimeoutを適用する必要があります。 –

答えて

0

これはできません(少なくとも、あなたが望む方法ではありません)。サーバー上で動作するPHPコードは、サーバー上のCOMオブジェクトにアクセスできます。クライアント上のCOMオブジェクトにアクセスしようとしています。

理論的には、リモートCOMを使用してそのマシンのファンクションを呼び出すことで、接続マシンのIPアドレスに関する情報を得ることができますが、ほとんどのファイアウォールはブロックしようとします(正当な理由 - マシンをリモート制御しようとしています)。

あなたがHTMLやJavaScriptでこれをやろうとしてオフにはるかに優れている - いくつかの電子メールクライアントのために働くここに例があります:あなたは本当にこの(クライアント上の開いているOutlookなど)のにしたい場合は http://resources.elixiter.com/how-to/how-to-pre-populate-the-subject-line-and-body-in-mailto-generated-emails

、ActiveXはこの種のことをするように設計されています。しかし正直なところ、これは良い考えではありません。たとえあなたがこれを行うことができたとしても、その人に見通しがインストールされていないとどうなりますか?彼らがWindows上にいない場合はどうなりますか? HTMLおよびJavaScriptソリューションは、より多くのシステムで動作します。

0

PHPがサーバ上で動作します。クライアント上でコードを実行するには、IEでJSにかなり制限されているだけで、信頼できるリストに載っていてCOMオブジェクトを作成できる場合に限ります。

(HTMLとallを使用して)サーバーにEMLファイルを作成し、ユーザーにダウンロードさせます。クライアント側のOutlookは、開いて表示することができます。 X-Unsent:1 MIMEヘッダーをOutlookで未送信として表示するように設定することを忘れないでください。

関連する問題