2008-09-17 6 views
14

Ich habe eine Rails-Anwendung auf einem Linux-Server ausgeführt. Ich möchte mit Outlook/Exchange 2003 Termine aus der Rails-Anwendung interagieren. Zum Beispiel sollten bestimmte Aktionen das Senden eines Termins auslösen, und dann sollte das Annehmen/Abbrechen des Termins in Outlook Ereignisse in der Anwendung auslösen.Interaktion mit Outlook-Terminen mit Schienen

Ist es in diesem Fall möglich, Kalender zu veröffentlichen, die Outlook 2003 ohne Outlook-Plugins lesen kann? Ich stelle fest, dass Outlook 2003 ical ohne Plugins zum Beispiel nicht unterstützt. Wenn dies in Ruby nicht einfach möglich ist, aber in einer anderen Sprache (wie z. B. Perl) unter Linux ausgeführt wird, wären diese Vorschläge willkommen.

Jeder Rat, wie dies zu erreichen ist oder wo man anfangen soll, nach Antworten zu suchen, wäre dankbar.

Antwort

10

Outlook-Termine sind nur E-Mails mit speziellen Header-Informationen. Es gibt einige Informationen in this tutorial über die erforderlichen Teile. Ich habe einige Besprechungseinladungen von meinem Outlook an mein Google Mail-Konto gesendet und mir die rohen Header angeschaut - Sie können das meiste Protokoll daraus entnehmen.

Die iCalendar specs kann Ihnen auch helfen.

1

Werfen Sie einen Blick auf das Projekt RExchange auf GitHub.

0

Zum Zugriff auf Termine können Sie einfach mit WebDav auf den Ordner Kalender in Exchange zugreifen. Weitere Informationen zum Erstellen von Terminen finden Sie in RFC2445.

0

Weiter zu ceejayoz Kommentar, können Sie auch ActionMailer verwenden, um die Antworten zu erfassen, die zurückgeschickt werden, und auf sie reagieren - Sie benötigen eine Form der eindeutigen ID an einem Ort, der in der Antwort enthalten sein wird.

4

Vielen Dank für Ihre Hilfe. Ich habe etwas gefunden, das mir gezeigt hat, wie man das mit Perl macht, und es auf Ruby portiert. Ich habe blogged about it für die Suche nach einer Lösung

1

Wenn Sie auf Exchange 2007 aktualisieren können, können Sie Exchange Web Services verwenden, die leistungsfähiger und bequemer als WebDAV ist.

Bei der Arbeit erbte ich eine Rails-App, mit der Benutzer einzelne Termine erstellen können. Ich wurde gebeten, Code zu schreiben, um diese Termine in der App mit den Outlook-Kalendern der Benutzer zu verknüpfen, sodass sie immer synchron sind. Klingt für mich sehr ähnlich wie du es machen willst.

Ich glaube nicht, dass ich den genauen Code veröffentlichen darf, den ich geschrieben habe. Wie auch immer, ich gebe dir eine kleine Vorstellung davon, wie ich es angesprochen habe.

Exchange Web Services bieten nur API in C# (keine Überraschung, es ist Microsoft. Technisch können Sie andere Sprachen verwenden, da es eigentlich SOAP ist.). Ich habe eine Middleware in C# geschrieben, die die Synchronisierung zwischen dem Exchange-Server und der Rails-App durchführt. Wenn Benutzer in der App planen, werden Änderungen an die Middleware gesendet, sodass Änderungen in ihren Outlook-Kalendern wiedergegeben werden können. Währenddessen registriert die Middleware Push Notification-Abonnements für alle Benutzer - jedes Mal, wenn Änderungen in Outlook vorgenommen werden, wird die Middleware sofort benachrichtigt, was wiederum diese Änderungen auch in der App widerspiegelt. Natürlich werden auch wiederkehrende Termine unterstützt.

Hoffnung, die Ihnen hilft.