私には要件があります。会社固有のドメインにあるユーザーのメールにアクセスする必要があります。そのユーザーのカレンダーを取得してWebアプリケーションに公開する必要があります。私はそれをするのに役立つAPIを見つけるのに疲れている。会社によって使用される電子メールクライアントはThunder Birdです。具体的には、特定のユーザーのためにThunder Birdからカレンダーにアクセスする必要があります。誰にでも私にこのことに対するいくつかの示唆を伝えることができます。Javaを使用しているユーザの電子メールアドレスのカレンダーにアクセスする
答えて
クマール
は、あなたの質問は非常にunpreciseです(電子メール/カレンダーを提供するサーバでのどのような?LDAPドメインはありますか?などなど)。検索中にドメインやWebDAVと問題があるため、古いExchange Serverについて話していると思いますか?しかし、多分あなたに少しでも助けを与えることができます。それはあなたがすでに他のコーダーの道を踏ん張っている可能性があるので、簡単で迅速な解決策を見つけることができます。
今日、私は、概念実証としてM $ Exchange 2003コネクタを完成させました。そして、私はあなたに教えてください、それは本当に私はインターンシップの間学生として私には難しいと言いました。それにもかかわらず、有用なAPIのヒントを得るために他の人を研究し、検索し、質問し、悩ませましたが、私の目的を達成したものはありませんでした。
使用するのがいい小さなフレームワークは、Sardine WebDAV Client for Javaと呼ばれています。このプロジェクトは非常に軽量ですが、いつでも見ることができるソースのために、WebDAVのしくみを理解することが役に立ちました。
他のすべてのソリューションは、さまざまなMAPI CC++ Libs for Linuxを対象としています。それは私のための選択肢でした。
どのようなオプションがありますか?お客様のExchange 2k3サーバーに直接アクセスするのではなく、1つの電子メールアカウント。だから皆さんは私を許してもらえるかもしれませんが、OWA経由でE2k3サーバーにPOST要求をするほうがはるかに簡単です。
OWAフォームからフォームフィールド情報を取得し、サーバーに投稿する接続文字列を作成することがあります。おそらくこれはあなたにアイデアを与える文字列です。ですから、このようなDLLを呼び出す必要があります:
HttpPost httpPost = new HttpPost("https://" + getUrl()
+ "/exchweb/bin/auth/owaauth.dll");
httpPost.setEntity(new StringEntity("destination=https%3A%2F%2F"
+ getUrl() + "%2Fexchange%2F&flags=0&username=" + getUser()
+ "&password=" + getPassword()
+ "&SubmitCreds=Log+On&trusted=4&flags=4", "UTF-8"));
フォームベースの認証を行うためにどのような情報はこちらから来た:Exchange 2003 Forms-Based Authentication。あなたが見ることができるように、私はブラウザからE2kと通信するために使用されるリンクをつかんだ。次のステップは簡単です。リクエストを送信してお待ちください...
返信で良好な回答が得られた場合は、セッションIDを除外することができます。ログインに成功した後の次のステップは、予定を検索することです。したがって、いくつかの情報についてM $に問い合わせることによって、確立されたWebDAV接続で適切な方法を見つける必要があります。SEARCH Method
次に、できることを読んでください。私はよく知られているFind-Machineに行き、Searching Calendar Folders with WebDAVの質問をしました。
HttpPost hp = new HttpPost(
"https://owa.SERVER.de/exchange/USER/Calendar") {
@Override
public String getMethod() {
return "SEARCH";
}
};
は今、あなたは検索方法を利用することができます:
は、その後、あなたは、このようなPOSTリクエストを作成することができます。あなたのプログラムが要求を送る準備が整っているので、それは良いことです。
hp.setEntity(new StringEntity(QUERY, ContentType.TEXT_XML));
HttpResponse response = httpclient2.execute(hp);
私はそれが完璧な解決策ではないことを知っています。私には2つの状況があったので、私は不思議に思った。まず、私はセッションIDを取得しましたが、フィールドに保管していればどこでも再利用する必要はありませんでした。もう一つは、別のHttpClientを呼び出す必要がありました。私は今説明することができません。ログオンに使用したのと同じHttpClientを使用した場合、すべてのリクエストは無駄でした。だから私は別のHttpClientを呼び出さなければならなかったのです。
最後に難しいのは、私が行った唯一のデバッグヘルプは、MSDNのHTTPエラー番号と悪い記述だったので、クエリーを取り消すことでした。そのために残念。さて、これは本当にうまくいきました。私はTrial and Errorでそれを後にしました。
private final static String QUERY = "<?xml version=\"1.0\"?><g:searchrequest
xmlns:g=\"DAV:\"><g:sql> Select \"DAV:href\", \"urn:schemas:calendar:dtstart\",
\"urn:schemas:calendar:dtend\", \"urn:schemas:mailheader:subject\",
\"urn:schemas:calendar:duration\" FROM Scope('SHALLOW TRAVERSAL OF
\"/exchange/USER/Calendar\"')</g:sql></g:searchrequest>";
これは特定のクエリではありません。私はちょうど別のドキュメントからそれを交替し、私が必要としなかったすべてのものを取り除いた。
私はこれが少し助けてくれることを願っています。 Thunderbirdのアポイントメント/カレンダーの日付の提供についてこれは私の知るところではないので何も言いません。
敬具と良い夜、
セモ
- 1. firebaseルールの電子メールアドレスにアクセスする
- 2. Javaを使用して電子メールアドレスを暗号化します
- 3. Androidのファイル名として電子メールアドレスを使用する
- 4. 電子メールアドレスでユーザを検索
- 5. Three20のURLパラメータを使用して電子メールアドレスを使用して電子メールクライアントを起動する方法
- 6. ユーザのプライマリ電子メールアドレスを取得するmysql phpのベストプラクティス
- 7. javaアプリケーションを使用してMySQLに電子メールアドレスを挿入します。
- 8. アクセストークンを使用して電子メールアドレスを取得するGoogle Ionic
- 9. Android:OTPを使用して電子メールアドレスを確認する方法
- 10. findOne()を使用して電子メールアドレスを照会する
- 11. Firebaseユーザの電子メールアドレスをIDで取得する方法
- 12. 電子メールアドレスをルートパラメータとして使用する
- 13. ajax投稿を使用したユーザ名と電子メールアドレスのリアルタイム検証
- 14. Javaメール - 動的送信者の電子メールアドレスを使用
- 15. MySQLデータベースに電子メールアドレスのユーザ名を問い合わせてください
- 16. JavaのKeyReleasedイベントの電子メールアドレス検証
- 17. phpmailerを使用して複数のcc電子メールアドレスを追加するには
- 18. cpanelを使用して私のライブサイト(ドメイン電子メールアドレス)を送信
- 19. 自然な識別子(電子メールアドレスなど)を使用する
- 20. PHPを使用して特定の電子メールアドレスに電子メールを送信する方法は?
- 21. プライベートドメインの電子メールアドレスを使用してDjangoで電子メールを送信するには?
- 22. 電子メールアドレスの検証+ java regularExpression
- 23. フィルタを使用してLinuxの電子メールアドレスの一部を削除する
- 24. APIを使用してMailChimpリストに電子メールアドレスを追加するには
- 25. Gmail Python APIを使用して電子メールの送信者の電子メールアドレスを取得する方法
- 26. ユニークな電子メールアドレスを使用する管理者の変更
- 27. 電子メールアドレスのみを使用してユーザーを作成する - ruby on rails
- 28. Gitコミットの電子メールアドレスを使用してJenkins通知を送信する
- 29. ASP.NETでLive Connect APIを使用してユーザーの電子メールアドレスを取得する
- 30. SurveyMonkey APIを使用してサーベイコレクタの送信者電子メールアドレスを設定する
感謝。私はあなたの助けに感謝することをほとんど忘れています。 –