如何从Outlook 2007获取发送电子邮件地址

时间:2010-03-16 00:48:13

标签: c# outlook-2007-addin

我正在使用Visual Studio 2008 for MS开发Outlook加载项目 C#中的Outlook 2007。我在这里解释我的问题...

我的outlook 2007有多个帐户(3个帐户)。我需要得到 “新邮件”窗口中的“帐户”表单“帐户”框 当我们单击“新邮件”时,将出现一个新窗口,我们可以从中进行操作 发送新邮件。在这里(在这个窗口)我们可以看到账户下拉(左侧) 方)在发送按钮下。如果我们有Outlook的多个帐户,我们 如果我们点击“帐户框”,我们可以看到账户下拉中的所有账户。如果 我们点击特定的电子邮件,电子邮件会出现一个正确的标记 可以在“发送”按钮顶部看到帐户和消息“This 消息将通过xyz@gmail.com发送“。

所以,我希望将这些电子邮件帐户变成一个字符串,特别是 电子邮件帐户(有正确的标记)到另一个字符串。 我把这3个电子邮件帐户变成了一个字符串。但是,我没有得到 特定的电子邮件帐户(在我们发送新电子邮件时具有正确的标记)。

我正在使用此代码......

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;
                    }

我可以从上面的代码中获取所有帐户。但是,我只想获取我们将在特定时刻发送电子邮件的电子邮件地址..

2 个答案:

答案 0 :(得分:1)

查看MailItem SendUsingAccount 属性 或者你可以像你说的那样从窗口名称中获取它。

马库斯

答案 1 :(得分:1)

解决方案很简单:

...
your code
...

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

电子邮件存储在当前用户对象下的AddressEntry属性中。该对象在考虑之中 - 多么简单: - )