私は、メールアイテムの送信者のSMTP電子メールアドレスを取得するOutlookプラグインを作成しました。それはほとんどのマシンでうまくいきますが、交換ユーザーからの電子メールのSMTPアドレスを解決しようとするたびにCOMExceptionをスローするマシン(新しい開発マシン)が1台あります。以下は、私が使用しているコード... RecipientオブジェクトのプロパティのAddressEntryにアクセスするとき、次のCOMExceptionはが発生Outlook Interop AddressEntry例外
private string SenderEmail(MailItem item)
{
if (item == null)
{
return "";
}
else
{
string senderEmail = string.Empty;
if (item.SenderEmailType.ToUpper() == "EX")
senderEmail = GetEmailAddressFromOU(item.SenderEmailAddress);
else
senderEmail = item.SenderEmailAddress;
return senderEmail;
}
}
private string GetEmailAddressFromOU(string ouName)
{
string emailAddress = string.Empty;
NameSpace oNS = ((Microsoft.Office.Interop.Outlook.Application)OutlookAppObj).GetNamespace("MAPI");
Recipient recip = oNS.CreateRecipient(ouName);
recip.Resolve();
ExchangeUser exUser = recip.AddressEntry.GetExchangeUser();
emailAddress = exUser.PrimarySmtpAddress;
Marshal.ReleaseComObject(exUser);
Marshal.ReleaseComObject(recip);
Marshal.ReleaseComObject(oNS);
return emailAddress;
}
です:
メッセージ= "しようとした操作が失敗したオブジェクトができませんでした。 "
私はOutlook 2010を使用してWindows 7(64ビット)を使用していますが、この同じコードは同じOSとOutlookバージョンを持つ他のマシンで動作します。また、Windows 7(32ビット)とOutlook 2010であった以前の開発マシンでも正常に動作します。
私はStackOverflowとGoogleをすべての解決方法で検索しましたが、何も見つかりませんでした。
誰でもこの問題を解明できますか?
詳細情報:問題は、送信者のLDAPパスを解決することです。新しいメールの宛先ボックスにLDAPパスを入力して「名前の確認」をクリックすると、正しいユーザーに解決されます。私のマシンで、「名前の確認」をクリックすると「Microsoft Outlookは認識しません」というメッセージが表示されます。 –