問題タブ [exchangewebservices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - EWSを使用してExchangeでメールをループする方法は?
Exchange2007サーバーで最大のメールのリストを取得するタスクが与えられました。
これまでExchangeに対してコーディングしたことがないので、少し調べてみると、EWSがそれを行うための最新のインターフェイスであることがわかりました。
ただし、メールのループに関するドキュメントが見つかりません。サイズを確認するために必要になると思います。
誰かが私がこれを達成するのを助けることができるコードサンプル、リンクまたはほとんど何かを持っていますか?
exchange-server - EWSマネージAPIを使用して他のユーザーの予定を作成しますか?
EWS Managed APIでは、特定のユーザーの予定を簡単に作成できます。
これにより、管理者の予定が作成されます。ただし、実際に別のユーザーの予定を作成したいとします(そのユーザーを私の予定の出席者として追加しないでください)。これはEWSマネージAPIを介して可能ですか?
c# - Exchange Web サービス 2010 の概要
私は、EWS2010 と、以前は WebDAV を使用して Exchange に接続していたアプリケーション サーバーとの間のミドルウェアとなる SOAP Web サービスを .Net で作成する任務を負っています。(私が理解しているように、WebDAV は EWS2010 で廃止されるため、アプリケーション サーバーは以前のように接続できなくなり、WebDAV なしで EWS に接続することは指数関数的に難しくなります。理論は、.Net でそれを行うことです。何よりも簡単なはず…ですよね?!)
私の最終的な目標は、指定された Exchange アカウントの電子メール、カレンダー アイテム、連絡先、および To Do リスト アイテムを取得および作成/更新できるようにすることです。(現時点では削除する必要はありませんが、簡単にできる場合は、将来の検討のために組み込む可能性があります)。
私は最初にいくつかのサンプル コードを与えられ、実際に動作しましたが、すぐにそれが古くなっていることに気付きました。使用されている型とクラスは、現在のドキュメントのどこにも記載されていません。
たとえば、Exchange サーバーへの接続を作成するために使用された方法は次のとおりです。
参考までに、これはサンプル コードMicrosoft.Exchange.WebServices.dll
("MEWS") に付属のアセンブリを使用していました。
これが接続を達成するための現在の標準的な方法ではなく、それが機能することに気付く前に、それを構築して、ここからコピーしたカレンダーアイテムを作成するメソッドを追加しようとしました:
ExchangeService
すぐに、とExchangeServiceBinding
("ESB");の違いに直面します。CreateAppointment
そこで、メソッドがコンパイルされるように ESB 定義を取得する方法を見つけようと、グーグルを開始しました。WSDL からプロキシ クラスを生成する方法を説明しているこのブログ投稿を見つけました。
残念ながら、これにより、元のアセンブリ (サンプル コードに付属) で定義された型が新しいアセンブリ ( Exchange サーバーによって提供されたから生成されたコードからコンパイルしたものMicrosoft.Exchange.WebServices.dll
) の型と重複するという競合が発生しました。EWS.dll
services.wsdl
MEWS アセンブリを除外しましたが、これは事態を悪化させるだけでした。ほんの一握りのエラーと警告から、25 個のエラーと 2,510 個の警告になりました。すべての種類とメソッドが見つかりませんでした。ここで何かが明らかに間違っています。
というわけで狩りに戻りました。サービス参照と Web 参照を追加する手順 (つまり、VS2008 で必要な追加の手順) を見つけたので、正しい軌道に戻ったと思います。
私が試していた以前のすべてのアセンブリを削除しました(実際には、今のところ除外しただけです)。のサービス参照を追加しましたhttps://my.exchange-server.com/ews/services.wsdl
これで、エラーが 1 つと警告が 1 つになりました。
警告:
親要素のコンテンツ モデルが空であるため、要素 'transport' に子要素 'extendedProtectionPolicy' を含めることはできません。
これは、サービス参照を追加したときに web.config に加えられた変更に関するものです。ここで SO の修正を見つけました。示されているようにそのセクションをコメントアウトしましたが、警告が消えました。
ただし、エラーを回避するのはそれほど簡単ではありません。
エラー:
型または名前空間名 'ExchangeService' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)
これは、EWS 接続を作成するために使用していた関数を参照しており、各 Web メソッドによって呼び出されます。
この関数は、サンプル コードの MEWS アセンブリで完全に機能しましたが、このExchangeService
型は使用できなくなりました。(ExchangeServiceBinding
それは私が最初にチェックしたことでもありません。)
この時点では、ドキュメントの指示に従っていないため (Exchange サーバーの services.wsdl にサービス参照を追加するように指示されたドキュメントのどこにも見つかりませんでした。しかし、それが最善のようです/これまでに到達した距離の中で最も遠い)、盲目的に飛んでいるような気がします。
ExchangeService
/を置き換える必要があるものを把握し、それをExchangeServiceBinding
実装し、その切り替えの結果として発生するエラーに対処する必要があることを私は知っています...
しかし、私はそれを行う方法、またはそれを行う方法をどこで探すべきかわかりません。「ExchangeService」と「ExchangeServiceBinding」をグーグル検索しても、古いブログ投稿と MSDN に戻るだけのようで、どちらも今のところあまり役に立たないことが証明されています。
ExchangeService
/を何に置き換える必要がExchangeServiceBinding
ありますか? MSDN よりも優れた、EWS での作業を文書化した他の場所はありますか?
c# - パブリックフォルダのルートにアクセスできません
最近、C#を使用して.NETコンソールアプリをコーディングしました。目的は、特定のフォルダー内の電子メールを読み取り、特定の値についてそれらを解析し、データベースに保存することでした。
私が最初にこれをコーディングしたときの電子メールシステムはExchange2003でした。しかし、まもなくExchange 2010にアップグレードすることに気づきました。エルゴ、両方の環境で機能するようにコードを作成しました。
ただし、Exchange 2010への移行後、アプリは壊れています。
このアプリは、EWS APIfor2010の機能を使用します。ExchangeServiceのFindFoldersメソッドを使用してpublicfoldersrootを検索しようとすると、例外がスローされます。コードは次のとおりです。
例外:ErrorInvalidSchemaVersionForMailboxVersion
、別名:
要求されたメールボックスは、指定されたRequestServerVersionをサポートしていません
私が試みた:
exchangeserviceを2007に設定します(例外をスローします:「内部サーバーエラーが発生しました。操作は失敗しました。」)
パブリックフォルダへの最高レベルの許可を自分に与える(効果なし)
クレデンシャルを手動で設定する(効果なし)
Outlook2007でパブリックフォルダを表示できます。publicfoldersrootプロパティは、インテリセンスで使用できます。コードはローカルフォルダーで機能します(受信トレイを解析できます)。
私の現在の考えは、これはExchange 2010の最近のセットアップの設定であると考えています。残念ながら、それは実際には私の分野ではありません。例外は、以前のバージョンのExchangeを使用しようとしていることを示しています。2007に設定すると、コードが失敗し、内部サーバーエラーが発生します。
c# - Folder.Bind-「Idの形式が正しくありません」-ExchangeWebサービスマネージAPI
クエリ文字列を介してクエリFolder.Id.UniqueId
から取得したフォルダのプロパティを別のページに渡します。FindFolders
この2番目のページでは、これを使用しUniqueId
てフォルダーにバインドし、メールアイテムを一覧表示します。
このコードを実行すると、IDが不正であるという例外がスローされます。FolderId
多分それはオブジェクトでラップする必要があると思いました:
同じ問題。
私はしばらく探していて、Base64 / UTF8変換に関するいくつかの提案を見つけましたが、それでも問題は解決しませんでした。
誰かが特定の一意のIDを持つフォルダにバインドする方法を知っていますか?
c# - EWS - 日付間の項目 [メッセージ] を検索するには?
受信トレイ フォルダから 2 つの日付の間のメッセージ アイテムを検索しようとしています。次のrestrictionTypeを使用していますが、このエラーがスローされます:
firmt.RootFolder = null
私は何を間違っていますか?
言及された日付の間にいくつかのメッセージがあります;-)
ご提案いただきありがとうございます。
windows-authentication - iPhone および WinCE ベースのスマートフォンのメールが Exchange で機能するのはなぜですか?
メールと予定表の情報をダウンロードするために Exchange Web サービスを使用するデバイスがあります。Active Directory 資格情報を使用して、Exchange で自身を認証します。デバイスには、ユーザー ID とパスワードが保存されます。ユーザーが自分の PC からパスワードを変更すると (IT 部門がパスワードの有効期限を強制するため)、デバイスのパスワードも変更されるまで、デバイスのメールは機能しなくなります。これを調査したところ、Windows CE ベースのスマートフォンと iPhone は、Exchange のパスワードが同期されていない場合、パスワードの入力を求められないことがわかりました。彼らはまだ働いています。
そんなことがあるものか?それが機能するための特別な Exchange 構成はありますか? それは私にはセキュリティホールのように見えます。
c# - Exchange Web Services 2010マネージAPIを使用してフォルダーサイズを取得するにはどうすればよいですか?
EWS 2010マネージAPIを使用して、ユーザーのメールボックスの合計サイズを取得しようとしています。このデータを取得するためのWebサービスメソッドが見つからなかったので、計算してみようと思いました。別のサイトで、EWS 2007でメールボックスのサイズを見つけることについて、当てはまると思われる質問を1つ見つけましたが、何を求められているのかわからないか、その方法がEWS2010では機能しません。
コードインサイトをいじくり回して、フォルダー構造を再帰的にトラバースし、受信トレイ内のすべてのフォルダーの合計を算出する方法だと思ったものを書くことができました。
(特定のフォルダー内に10,000を超えるフォルダーがないことを前提としています。これは安全な方法です...)
残念ながら、これは機能しません。
私はこのコードで再帰を開始しています:
しかし、Null参照例外がスローされます。これは、本質的に[folder].ManagedFolderInformation
はnullオブジェクト参照であると言っています。
わかりやすくするために、ルートフォルダのサイズも取得しようとしました。
これは同じNRE例外をスローしたので、ディレクトリツリーの特定の深さに到達すると、ManagedFolderInformationが存在しないというだけではないことを私は知っています。
ユーザーのメールボックスの合計サイズを取得する方法について何かアイデアはありますか?私は間違った木を吠えていますか?
.net - ExchangeWebサービス用のWCFでTLS/SSL認証検証をバイパスするにはどうすればよいですか
SSLをバイパスせず、通常のhttpプロトコルを使用してExchange 2007サーバーに接続しますが、実際のSSL証明書には投資したくないため、BlackBerryエンタープライズサーバーに使用する証明書が必要です。ここでこれを回避する方法はありますか例外です
要求が失敗しました。基になる接続が閉じられました:SSL/TLSのセキュリティで保護されたチャネルの信頼関係を確立できませんでした。
ExchangeServiceに不正なsslを受け入れさせるにはどうすればよいですか。
c# - C# Web アプリケーションからプログラムで Exchange 2007 サーバーにメールボックス エイリアスを追加する方法は?
件名が言うように、Exchange 2007 サーバーと通信する C# Web アプリケーション (.NET 3.5) があります。私が助けを必要としているのは、プログラムで (できれば Web アプリ自体から) 新しいメールボックス エイリアスを特定のメールボックスに追加し、メールを送信する前に新しいエイリアスを返信先アドレスとして設定することです。
私はスクリプト作成に関してかなりの初心者ですが、これまで読んだ限りでは、ほとんどの人がこれを実現するために Exchange Powershell を提案しているようです。これを解決するサードパーティ API に関するヒントをいただければ幸いです。私は EWS API を見てきましたが、これまで見てきたことから、私が探しているものではないようです。