57

PHP で CMS アプリケーションを作成していますが、要件の 1 つは、顧客の Exchange サーバーとインターフェイスできる必要があるということです。私はこの機能を以前に数回書き上げており、常にWebDAVを使用してそれを実行してきましたが、今はそれから離れています。

Windows Server 2008 の IIS または Apache (優先度なし) でサイトを実行します。特定のユーザーのアドレス帳に連絡先を追加する、特定のユーザーとして電子メールを送信する、特定のユーザーの連絡先に関するレポートを実行するなど、いくつかの作業を行う必要があります。ユーザー。

これらはすべて WebDAV を使用すると非常に簡単に実行できますが、機能を必要としないより良い方法があれば、すぐに廃止される可能性があります。

何か案は?

アップデート:

ジャスティン、私は com オブジェクトを使用するというアイデアが大好きです。すべてを機能させるために 3 番目の製品を維持することを心配しています...

ジョン、私は C# で Web サービスを作成して、これらの関数とやり取りし、PHP アプリでアクセスすることができますが、それも少し面倒です。

これまでのところ、これらのいずれかが WebDAV よりも優れていると 100% 確信しているわけではありません...

誰か私がばかげているところを見せてもらえますか?

4

9 に答える 9

24

2020年現在の更新:
この質問と物事が進んでから10年以上。Microsft には、このデータに簡単にアクセスできるRest APIが用意されています。


元の回答

これを行うために PHP を使用したことはありませんが、C# を使用して同じことを達成した経験があります。

Outlook API は、Exchange に直接接続するのではなく、Outlook を自動化する方法です。私は以前に C# アプリケーションでこのアプローチを採用しましたが、バグがある可能性がありますが機能します。

Exchange サーバーに直接接続する場合は、拡張 MAPI を調査する必要があります。

以前は、このラッパーMAPIEx: Extended MAPI Wrapperを使用していました。

これは C# プロジェクトですが、PHP5 Windows サーバーで .NET コードを使用できると思います。あるいは、使用できる C++ コア DLL があります。私はそれが非常に優れていることを発見しました.いくつかの良いサンプルアプリケーションがあります.


投稿を追跡する現在の方法はまだありません。

アプリケーションにレイヤーを追加し、サードパーティのコードに依存することは恐ろしいことに同意します (当然のことです)。

今日、MAPI としてタグ付けされた別の興味深い投稿を読みました。ここで重要なことは、この重要な MS の記事にリンクしていることです。コンポーネントの C++ コードはアンマネージであるため、このエラーの影響を受けないはずですが、MAPI とのインターフェイスにマネージ コードを使用する際の問題については、これまで認識していませんでした。

このブログ エントリでは、MAPI/Exchange サーバーに接続する他の方法も提案しています。この場合、これらの新しい事実により、http://us3.php.net/imapが他のユーザーによって提案された答えになる可能性があります。

于 2008-08-03T07:50:37.617 に答える
14

お客様は Exchange 2007 を使用していますか? もしそうなら、私はExchange Web Servicesを見たいと思います。そうでない場合は、どんなに毛むくじゃらでも、WebDAV が最善の策だと思います。

個人的には、Outlook.Application COM オブジェクト ルートの使用は好きではありません。セキュリティ プロンプト (「アプリケーションが連絡先にアクセスしようとしています。これを許可しますか?」など) がサーバーで問題を引き起こす可能性があるからです。また、特定のユーザーとしてメールを送信するなど、Outlook を使用してなりすましのようなタスクを実行することは難しいと思います。

于 2008-08-05T02:35:02.820 に答える
12

私は、Exchange Web サービスを使用して PHP でいくつかの基本的な操作を実行できるオープン ソースの MIT ライセンス ライブラリをリリースしました。

PHP 用 Exchange Web サービス

Linux でのみテストしましたが、PHP の Windows インストールでも機能しない理由はわかりません。

于 2011-05-04T13:47:32.997 に答える
10

Dmitry Streblechenko のRedemption Data Objectsライブラリはあまりお勧めできません。これは、Extended MAPI に適切な API を提供する COM コンポーネントであり、使用するのが楽しくなります。Exchange API のゴールポストは、リリースごとに次のように移動します。「M: ドライブを使用してください! いいえ、WebDAV を使用してください。いいえ、ExOLEDB を使用してください!… いいえ、Web サービスを使用してください!」唯一の定数は古き良き MAPI です。

于 2008-09-01T20:33:44.037 に答える
7

PHP Exchange Web Servicesまたは短いphp-ewsを使用することをお勧めします。

wikiの下にあるかなりの量のドキュメントは、私を大いに助けてくれました。

于 2013-02-01T13:20:33.430 に答える
7

私は PHP 開発者ではありませんが、Google は PHP 5+ で COM コンポーネントをインスタンス化できると言っています。ボックスに Outlook をインストールできる場合は、必要な要求を処理するために、COM コンポーネントの周りに PHP Web サービスを作成できます。

$outlook = COM("Outlook.Application")

Outlook API リファレンス

于 2008-08-03T03:07:30.150 に答える
6

このZarafa PHP MAPI拡張機能は機能するようです。

于 2012-05-09T18:47:12.453 に答える
5

私はIMAPを調べます

IMAP、POP3、NNTP

于 2008-08-04T17:00:40.327 に答える