1

C# で MS Outlook 2007 用の Visual Studio 2008 を使用して Outlook アドイン プロジェクトに取り組んでいます。ここで私は私の問題を説明しています...

Outlook 2007 で複数のアカウント (3 つのアカウント) を取得しました。[新しいメール メッセージ] ウィンドウの [アカウント] ボックスからアカウントを取得する必要があります。[New Mail Message] をクリックすると、新しいウィンドウが表示され、そこから新しいメールを送信できます。ここ (このウィンドウ) では、[送信] ボタンの下にアカウント ドロップダウン (左側) が表示されます。Outlook で複数のアカウントを持っている場合、[アカウント ボックス] をクリックすると、[アカウント ドロップ ダウン] にすべてのアカウントが表示されます。特定のメールをクリックすると、そのメール アカウントに右のマークが表示され、送信ボタンの上部に「このメッセージは xyz@gmail.com 経由で送信されます」というメッセージが表示されます。

したがって、これらの電子メール アカウントを文字列に取得し、その特定の電子メール アカウント (正しいマークが付いているもの) を別の文字列に取得したいと考えています。これら 3 つのメール アカウントを 1 つの文字列にしました。しかし、私は特定の電子メールアカウントを取得していません (新しい電子メールを送信するときに正しいマークが付いています)。

私はこのコードを使用しています....

using Outlook = Microsoft.Office.Interop.Outlook;

using Office = Microsoft.Office.Core;

using Microsoft.Office.Interop.Outlook;

Outlook._Application myOutlookApp = new Outlook.Application();

Outlook.Accounts myAccounts = myOutlookApp.Session.Accounts;

foreach (Outlook.Account account in myAccounts)
                    {
                        string emailAddress = account.SmtpAddress;
                    }

上記のコードからすべてのアカウントを取得できます..しかし、その特定の瞬間にメールを送信するために使用するメールアドレスを取得したいだけです..

4

2 に答える 2

1

MailItem SendUsingAccountプロパティを確認するか、ウィンドウ名から取得できます。

マーカス

于 2010-03-16T13:04:28.277 に答える
1

解決策は簡単です:

...
your code
...

    foreach (Outlook.Account account in myAccounts)
                        {
                            string emailAddress = account.CurrentUser.AddressEntry.Address;
                        }

電子メールは、CurretUser オブジェクトの下の AddressEntry プロパティに格納されます。そのオブジェクトはアカウントの下にあります-なんて簡単です:-)

于 2011-09-22T14:43:04.600 に答える