質問

2つのサーバーがあります。S1はExchange2010S2ですS2はExchange2007です

両方のサーバーは、ActiveDirectoryの同じドメインにあります。

アイデアは、両方のサーバーのユーザーを有効にしたS1に「サービスアカウント」を持つことです。私のアプリは「サービスアカウント」の資格情報を使用しており、SMTPアドレスのリストを介して反復します。各SMTPアドレスになりすまし、そのアカウントのメールボックスのコンテンツで処理を行います。

それが理論であり、今は問題の時です。

サービスアカウントとして接続してメールボックスにアクセスできますが、「SMTPアドレスにはメールボックスが関連付けられていない」と言って、Impersonatedユーザーのメールボックスにアクセスしようとすると、例外が表示されます。両方のサーバーで例外が発生します。

私は考えられる理由についてデバッグとグーグルを始めましたが、何もないことからこれを変えました:

svc.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, smtpAddress);

これに:

svc.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, smtpAddress);

そして、それは非常に奇妙なことです。なぜなら、1か月前に1つのサーバーだけで異なるセットアップがあり、SMTPADDRESS ENUMを使用して機能し、私の管理者はなりすましの構成がまったく同じであることを誓います。

さて、誰かがConnectingIdtype.smtpaddressを使用できない理由についてのいくつかのヒントを私に提供できるとしたら、それを可能にするために何をすべきか?

役に立ちましたか?

解決

もちろん、管理者は現在の構成に対して何か違う方法を行ったことが判明しました。新しい環境には、アカウント名がアカウントのSMTPアドレスとは異なるというポリシーがあり、SMTPにはユーザーの名前と姓の間にドットがあります。したがって、たとえば、古い構成では、ConnectingIdTypeを選択した場合、smtpまたはaccount nameを使用しているかどうかに応じて適切なIDタイプを設定する必要があります。

他の誰かの管理者が「何も変わらなかった」場合に役立つことを願っています:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top