在asp.net中使用EXCHANGE SERVER(Microsoft Outlook Web访问)发送邮件

时间:2011-06-20 13:44:16

标签: c# asp.net exchange-server exchangewebservices

我知道如何使用安装在同一台机器上的outlook发送邮件,我正在运行我的代码。 现在,这里的要求是访问我组织的Exchange服务器(Microsoft OWA),以便用asp.net代码发送邮件。

有可能吗?如果是,那么请投入一些光。

日Thnx

更新

得到了解决方案。在这里为任何想要帮助的人发布我的工作代码。快乐的编码!

protected void Button1_Click(object sender, EventArgs e)
{
     ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
    //service.AutodiscoverUrl("youremailaddress@yourdomain.com");

    service.Url = new Uri("https://yourwebmailaddress.com/ews/Exchange.asmx");

    service.UseDefaultCredentials = true;
    //service.Credentials = new WebCredentials("username", "password");


    EmailMessage message = new EmailMessage(service);
    message.Subject = "My auto mail from exchange server";
    message.Body = "hi everyone !";
    message.ToRecipients.Add("brad.pitt@hollywood.com");
    message.Save();

    message.SendAndSaveCopy();

    Label1.Text = "Success !";    
}

另一个问题:如何使用microsoft exchange 2003?那里不支持coz EWS。请更新任何想法......?

2 个答案:

答案 0 :(得分:4)

您可以使用Exchange Web服务API(EWS)发送电子邮件。 EWS是一组与OWA在同一服务器上托管的老式ASMX Web服务。 Microsoft甚至为EWS发布了一个开源托管API包装器on GitHub

以下是有关如何使用EWS发送电子邮件的示例: http://code.msdn.microsoft.com/Send-Email-with-Exchange-50189e57

GitHub自述文件还包含样本链接。

通常可以在http://yourexchangeserver/ews/exchange.asmx找到EWS,但使用托管API,您可以使用自动发现自动在Exchange服务器上查找EWS的地址。

有关Exchange 2003的更新:

您可以使用WebDAV通过HTTP访问Exchange 2003邮件存储。 WebDAV使用起来有点痛苦,因为如果您的OWA安装需要,可能必须使用基于表单的身份验证(FBA)(相比之下,即使Exchange 2007/2010上的OWA使用FBA,EWS也可以使用Windows身份验证)。

我从来没有尝试过使用WebDAV for Exchange发送邮件(虽然我已经将WebDAV用于其他一些事情)但我找到了你可能想要尝试的example on MSDN。它使用Windows身份验证,因此如果您的Exchange 2003 OWA设置为使用FBA,它将无法运行。如果您需要使用FBA,请告诉我 - 我可能会在您可以使用的地方提供一些示例代码。

答案 1 :(得分:1)

可以通过您的组织交换服务器从asp.net发送电子邮件,但您不想使用OWA。

有一个专门针对.Net电子邮件的网站,它可以为您提供一些示例代码。看到: http://www.systemnetmail.com/

了解您需要让交换管理员让您的asp.net机器访问Exchange服务器上的SMTP端口(通常是端口25),并设置权限以允许您通过服务器中继消息。 / p>