9

Webで検索すると、「プログラムでメールを読む方法」に対する非常に簡単な答えが見つかります...すべてのWebサイトは、このページのようにほとんど同じことを説明しています。 http://omegacoder.com/?p=454

// depends from Exchange server version      
        service.Credentials = new NetworkCredential("MDR", "password", "zzz");
        service.AutodiscoverUrl("mdr@zzz.be");
        object o = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
        FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));
        foreach (Item item in findResults.Items)
        {
            Console.WriteLine(item.Subject);
        }

autodiscoverURL 行を実行すると失敗します。「自動検出サービスが見つかりませんでした」というエラーが表示されます。

そこで、さらにグーグルで検索して、Microsoft からこのサイトを見つけましたhttps://www.testexchangeconnectivity.com/#&&/wEXAQUBcwUBME93h2+JjI0+MV2gTqcRL0g43z9mここでメール サーバーをテストできます.... パラメータを渡すと、以下のエラーが表示されます。 ...

しかし、私はまだ問題が何であるかを理解していませんか?DNS にレコードを追加する必要がありますか? 誰か助けてくれませんか?

Attempting to test potential Autodiscover URL https://autodiscover.zzz.be/AutoDiscover/AutoDiscover.xml
 Testing of this potential Autodiscover URL failed.
 Test Steps
 Attempting to resolve the host name autodiscover.ncb.be in DNS.
 The host name resolved successfully.
 Additional Details
 IP addresses returned: 213.246.192.205

Testing TCP port 443 on host autodiscover.ncb.be to ensure it's listening and open.
 The specified port is either blocked, not listening, or not producing the expected response.
  Tell me more about this issue and how to resolve it
 Additional Details
 A network error occurred while communicating with the remote host.
Exception details:
Message: No connection could be made because the target machine actively refused it 213.246.192.205:443
Type: System.Net.Sockets.SocketException
Stack trace:
at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at Microsoft.Exchange.Tools.ExRca.Tests.TcpPortTest.PerformTestReally()




Attempting to contact the Autodiscover service using the HTTP redirect method.
 The attempt to contact Autodiscover using the HTTP Redirect method failed.
 Test Steps
 Attempting to resolve the host name autodiscover.zzz.be in DNS.
 The host name resolved successfully.
 Additional Details
 IP addresses returned: 213.246.192.205

Testing TCP port 80 on host autodiscover.zzz.be to ensure it's listening and open.
 The port was opened successfully.
ExRCA is checking the host autodiscover.zzz.be for an HTTP redirect to the Autodiscover service.
 ExRCA failed to get an HTTP redirect response for Autodiscover.
 Additional Details
 A Web exception occurred because an HTTP 404 - NotFound response was received from IIS7.



Attempting to contact the Autodiscover service using the DNS SRV redirect method.
 ExRCA failed to contact the Autodiscover service using the DNS SRV redirect method.
 Test Steps
 Attempting to locate SRV record _autodiscover._tcp.ncb.be in DNS.
 The Autodiscover SRV record wasn't found in DNS.
  Tell me more about this issue and how to resolve it
4

4 に答える 4

17

Exchangeサーバーのアドレスが既にわかっている場合は、必ずしも自動検出を使用する必要はありません。代わりに次を試してください(詳細については、こちらをご覧ください:

service.Url = new Uri("https://hostname/EWS/Exchange.asmx");

「hostname」をExchangeサーバーのホスト名に置き換えます。

于 2011-03-09T20:31:40.547 に答える
2

この時点で解決策が得られていることを願っています。これは、この投稿にぶつかった人を助けるためのものです。私はテクネットの記事の1つで解決策を見つけました。

コード内の行を次のように置き換えるだけです。

service.AutodiscoverUrl("user@yourdomain.com",
delegate
{
     return true;
});

他にもいくつか問題がありましたが、このビットとは関係ありません。

ハッピーコーディング、

サンジェイ。

于 2011-10-20T17:11:02.767 に答える
1

AutoDiscoverでも同じ問題が発生しました。必須ではありません。次のようにURLを指定できます。

    Uri myUri = new Uri("https://Hostname/ews/exchange.asmx");
    userData.AutodiscoverUrl = myUri;
    service.Url = myUri;

ホスト名として、192.168.100.10のようなサーバーIPアドレスを入力できます

または、Outlookを使用している場合にExchangeサーバーのホスト名(実際には使用するURL全体)を確認するには、日付と時刻が表示されているコンピューターのスタートバーに移動し、Outlookアイコンを見つけます。Ctrlキーを押したままにします。 + Outlookアイコンを右クリックし、[メールの自動構成のテスト]をクリックします</ p>

[自動検出を使用する]チェックボックスをオンにします。そのExchangeServerでホストされている電子メールアドレスとそのパスワードを入力すると、一連のURLを受け取ります。「AvailabilityServiceURL」という1を使用してください

于 2013-02-28T15:33:09.187 に答える
0

渡される資格情報には、指定された交換メールボックス/サーバーへのアクセス許可が必要であると考えてください。私の場合、適切に許可された別の資格情報のセットを使用しても機能しますが、機能させようとしているサービス アカウントには使用できません。アカウントに許可を与える必要がある正確な理由を見つけたら、ここで更新します。

更新: 私の問題は、サービス アカウントが、Exchange 2007 インスタンスが実行されているドメインとは異なるドメインからのものであったことでした。この 2 つの間には信頼関係があります。これは、Exchange 2007 がフォレスト内のアカウントを検索する方法に関する文書化された既知の問題であることがわかりました。最終的に、Exchange サーバーが置かれているドメインに同一のサービス アカウント (名前/パス) を作成し、ユーザー名を {exchange_domain}{service_account_name} として指定する必要がありました。EWS を呼び出す Windows サービスは、{original_domain}{service_account_name} として実行されます。

参考までに、例外は次のとおりです。 Microsoft.Exchange.WebServices.Data.ServiceResponseException: 呼び出し元アカウントの有効な Active Directory 情報を取得できませんでした。有効な Active Directory アカウントであることを確認してください。

于 2011-12-01T00:17:22.153 に答える