Exchangeサーバーから電子メールを送信し、添付ファイルを保存する小さなプログラムを試しています。提案から、私は償還ライブラリを使用することにしました。
サーバーにMicrosoftExchangeServerMAPIクライアントとCollaborationDataObjects 1.2.1をインストールしたので、Outlookがなくても動作するはずです。ローカルマシンでプログラムを実行すると、問題なく自分の受信トレイを参照できます。しかし、サーバー上で実行しようとすると、問題が発生します。
コードでログイン情報を指定したのに、ログインプロンプトが表示されます。アクセスしようとしているアカウントとは異なるアカウントでサーバーにログインしています。私の最も簡単な試みは次のようなものです。
// Get session
RDOSession session = RedemptionLoader.new_RDOSession();
// Attempt login
session.Credentials.Add("outlook.server.local",
"user",
"password",
rdoCredentialType.ctGeneric,
rdoCredentialPersist.cpLocalMachine);
session.LogonExchangeMailboxEx("user",
"outlook.server.local",
false,
true,
"",
"");
// Access mailbox
RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);
メールボックスまたはその他のアイテムにアクセスしようとすると、エラーが発生します。
Unhandled Exception: System.Runtime.InteropServices.COMException:
Error in IMAPI Session::OpenMsgStore: MAPI_E_LOGON_FAILED
Make sure your code runs under the Windows user identity that has MAPI profiles.
別のユーザーとしてログインしている場合でも、メールボックスにアクセスするにはどうすればよいですか?「実行...」でプログラムを実行し、ユーザーログインを提供すると、サーバーでも機能します。しかし、私はそれがさまざまなユーザーと連携するために必要です。