【问题标题】:Send mails using EXCHANGE SERVER (Microsoft Outlook web access)in asp.net在 asp.net 中使用 EXCHANGE SERVER(Microsoft Outlook Web 访问)发送邮件
【发布时间】:2011-09-18 17:20:34
【问题描述】:

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

有可能吗?如果是,那么请给我一些启发。

谢谢

更新

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

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 ?? '因为那里不支持 EWS。请更新任何想法...?

【问题讨论】:

  • 什么意思? OWA 只是一个访问您的交换服务器的网站。也许您的问题是如何使用 Exchange 发送电子邮件?
  • @oskar - 问题已编辑。谢谢通知。是的,我想通过我的代码访问交换服务器。如何确定交换服务器的地址?
  • SMTP 是用来发送电子邮件的。 MS Exchange 确实支持 SMTP。 http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx
  • 请看我更新的答案。我希望这会有所帮助。
  • 请将解决方案作为新答案发布,不要将其作为问题本身的一部分。

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


【解决方案1】:

您可以使用 Exchange Web 服务 API (EWS) 发送电子邮件。 EWS 是一组老式的 ASMX Web 服务,托管在与 OWA 相同的服务器上。 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,请告诉我 - 我可能有一些示例代码可供您使用。

【讨论】:

    【解决方案2】:

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

    有一个专门用于 .Net 电子邮件的网站,它应该为您提供一些示例代码。看: http://www.systemnetmail.com/

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

    【讨论】:

    • thnx 标记。我理解为什么我不应该使用 OWA。但在我目前的情况下,我想先试一试。稍后我可能会选择其他选项。 System.Net.Mail
    • System.Net.Mail 不需要在 Asp.net 机器上安装 Outlook。 @Jakob 我从未听说过 EWS。这很漂亮
    猜你喜欢
    • 1970-01-01
    • 2020-01-06
    • 2016-01-18
    • 2013-11-12
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多