レールを使用して Outlook の予定を操作する
-
01-07-2019 - |
質問
Linux サーバー上で Rails アプリケーションを実行しています。Rails アプリケーションから Outlook/Exchange 2003 の予定を操作したいと考えています。たとえば、特定のアクションによって予定の送信がトリガーされ、できれば Outlook での予定の承諾/キャンセルによってアプリケーションでイベントがトリガーされる必要があります。
これに失敗した場合、Outlook プラグインを必要とせずに Outlook 2003 で読み取ることができる予定表を発行することはできますか?Outlook 2003 は、たとえばプラグインなしでは ical をサポートしていないことに注意してください。同様に、これが Ruby では簡単に実行できなくても、Linux 上で実行される別の言語 (たとえば Perl など) であれば、それらの提案は歓迎されるでしょう。
これを達成する方法、またはどこから答えを探し始めればよいかについてのアドバイスをいただければ幸いです。
解決
Outlook の予定は、特別なヘッダー情報を含む単なる電子メールです。いくつかの情報が入っています このチュートリアル 必要な部分について。Outlook から Gmail アカウントに会議の招待状をいくつか送信し、そこにある生のヘッダーを調べました。そこからプロトコルのほとんどを理解できます。
の iCalendarの仕様 あなたにも役立つかもしれません。
他のヒント
皆さんのご協力に感謝します。Perl でこれを行う方法を示したものを見つけて、それを Ruby に移植しました。私は それについてブログに書いた 解決策を探している人のために
Exchange 2007 にアップグレードできれば、WebDAV よりも強力で使いやすい Exchange Web サービスを使用できます。
職場では、ユーザーが単一の予定を作成できるようにする Rails アプリを継承しました。私は、アプリ内のこれらの予定をユーザーの Outlook カレンダーにリンクして、常に同期するようにするコードを書くように依頼されました。あなたがやりたいことと非常によく似ています。
ただし、私が書いたコードをそのまま公開することは許可されていないと思います。とにかく、私がどのように対処したかについて少し考えてみます。
Exchange Web サービスは C# でのみ API を提供します (当然のことですが、これは Microsoft です。技術的には、実際には SOAP であるため、他の言語を使用することもできます。)Exchange サーバーと Rails アプリの間で同期を行うミドルウェアを C# で作成しました。ユーザーがアプリでスケジュールを設定すると、変更がミドルウェアに送信され、Outlook カレンダーに変更が反映されます。一方、ミドルウェアはすべてのユーザーのプッシュ通知サブスクリプションを登録します。Outlook で変更が行われるたびに、ミドルウェアにすぐに通知が送信され、その変更がアプリにも忠実に反映されます。もちろん、定期的な予約もサポートされています。
お役に立てば幸いです。
プロジェクトを見てみましょう R交換 github で。
予定にアクセスするには、WebDav を使用して Exchange のカレンダー フォルダーにアクセスするだけです。予定の作成については、RFC2445 を参照してください。
ceejayoz のコメントに加えて、ActionMailer を使用して、返送された返信をキャッチし、それに基づいて操作することもできます。ただし、返信に含まれる場所には、何らかの形式の一意の ID が必要になります。