2

我有一个项目需要通过本地电子邮件向员工发送通知。我使用 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 服务器。

我该如何解决?

4

3 回答 3

4

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

于 2009-02-17T12:44:25.017 回答
1

假设您拥有正确的服务器和任何所需的凭据(仔细检查这些),我会尝试增加SMTP 客户端的超时时间

于 2009-02-17T12:39:06.137 回答
1

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

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

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

于 2009-02-17T13:09:00.357 回答