4

この Microsoft ページは、UseDefaultCredentials プロパティを true に設定することにより、Exchange サーバーとの通信にログイン名とパスワードが不要であることを示しています。しかし、それは私の経験ではありません。

私のコードは、サービスと呼ばれる ExchangeService のインスタンスを作成します。

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);

次のように資格情報を手動で設定すると、すべてが正常に機能します。

service.Credentials = new WebCredentials("my@email.address", "my password");

ただし、その行を削除して次の行に置き換えると、コードが機能しません。

service.UseDefaultCredentials = true;

解決策を検索して検索しましたが、具体的なものは何も見つかりません。ここで誰かが私を助けてくれたら、とても感謝しています。

編集: デフォルトの資格情報の代わりに自分の資格情報を使用しようとしました。

string smtpaddress = "somesharedsmtp@domain.com";
es.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
es.Credentials = new WebCredentials("myemail", "mypassword");
es.AutodiscoverUrl(smtpaddress, RedirectionCallback);
FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "somesharedsmtp@domain.com");
Folder sharedInbox = Folder.Bind(es, SharedMailbox);

この時点で、受信トレイの詳細を含む sharedInbox を確認できます。未読メール数などがわかります。

でもアクセスしたら

ItemView itemView = new ItemView(100);
FindItemsResults<Item> findResults1 = es.FindItems(pqInbox.Id, itemView);

「SMTP アドレスにメールボックスが関連付けられていません」という例外が発生します

4

2 に答える 2

3

その場合の私の経験では、service.UseDefaultCredentials = true を設定すると、PC のログインが取得されます。exchangeserver と同じ ActiveDirectory 構造にある場合、これは完璧に機能します。ADS の外部から Exchange サーバーに接続しようとする場合は、資格情報を手動で設定する必要があります。

仕事中はツールに defaultcredentials を使用しています。自宅から接続する場合は、資格情報を設定する必要があります。

それがあなたを助けることを願っています...

于 2013-03-19T12:14:28.087 に答える
2

MSDN のドキュメントによると、UseDefaultCredentials は Exchange Online では無視されます。Exchange Online の資格情報を指定する必要があります。

http://msdn.microsoft.com/en-us/library/office/microsoft.exchange.webservices.data.exchangeservicebase.usedefaultcredentials(v=exchg.80).aspx

于 2014-11-20T17:42:06.503 に答える