Outlook.MailItem实例如何知道目标Exchange Server是什么?

时间:2011-08-16 06:29:17

标签: c# vsto sendmail

我尝试从C#应用程序发送电子邮件,我可以通过以下几行轻松完成此工作(我正在使用Outlook 2003,并拥有我的Outlook帐户):

Outlook.ApplicationClass oapp = new Outlook.ApplicationClass();
omessage = oapp.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
omessage.To = "abc@cba.com";
omessage.Subject = "Send From WinForm";
omessage.Body = "Hi, This message is send from a winform project.";
omessage.Send();

根据以上代码,可以成功发送电子邮件(尽管在发送电子邮件之前会显示一个警告框)。

我的问题是:这个omessage项目如何知道我的Exchange服务器在哪里,而我从未在此应用程序中配置我的Exchange Server?

是否有任何方法可以从代码端获取Exchange Server名称?因为我真的需要这个服务器地址。

谢谢!

1 个答案:

答案 0 :(得分:1)

您使用C#outlook dll \ add-in,您的应用程序使用outlook发送此mailitem。包括Exchange服务器地址在内的所有属性都在outlook中配置。这是一个在代码中公开交换服务器地址的方法:

Outlook.ApplicationClass oapp = new Outlook.ApplicationClass();
Outlook.NameSpace ns = oapp.GetNamespace("MAPI");
ns.Logon();

string ExchangeServer = ns.ExchangeMailboxServerName;

请注意,您必须定义Outlook.namespace属性才能通过MAPI获取地址