如何使用asp.net交换发送本地电子邮件?

时间:2009-02-17 12:36:32

标签: asp.net sendmail exchange-server-2007

我有一个项目需要通过本地电子邮件向员工发送通知。我使用SmtpClient类发送电子邮件但没有用!这是代码:

    MailMessage message = new MailMessage();

    message.From = new MailAddress("localmail1@company.com");
    message.To.Add(new MailAddress("localmail2@company.com"));
    message.Subject = "Sending mail";
    message.Body = "Check sending email by Exchange from asp.net code <> ";

    SmtpClient client = new SmtpClient("ExchangeDNS", 25);

    try
    {
        client.Send(message);
    }
    catch (Exception exc)
    {
        Label1.Text = exc.Message.ToString();
    }  

当我点击按钮时,它会给我SmtpException一条消息:Failure sending mail.

注意:我们使用Exchange服务器。

我该如何解决?

3 个答案:

答案 0 :(得分:4)

使用服务器的完全限定名称,例如exchangeDNS.example.com。如果这不起作用,请尝试IP地址。您可能希望手动telnet到Exchange服务器上的端口25,只是为了查看是否可能。另外,请检查您的服务器是否需要经过身份验证或加密的连接。如果是这样,您将需要提供带有请求的凭据,或者更改为使用SSL和安全端口。

答案 1 :(得分:1)

假设你有服务器并且任何所需的凭据都是正确的(仔细检查这些)我会尝试增加timeout on the SMTP client

答案 2 :(得分:1)

你的代码很好。这是您怀疑的Exchange服务器的配置。 Exchange管理员的一些选项:

  • 允许匿名SMTP连接。
  • 将IP列入白名单,以便只有您的网络服务器才能以这种方式发送邮件。
  • 为Web服务器创建一个Active Directory帐户,然后使用用户名和密码对您的类进行身份验证。

如果您发布有关Exchange配置的更多详细信息,我可以提供帮助,但可能会将此问题降级为“无编程相关”。