使用.NET进行SMTP身份验证失败

时间:2011-07-20 12:43:36

标签: c# asp.net smtpclient

您好,我在发送邮件时遇到了一些问题。

我一直收到错误

  

SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应是:需要SMTP身份验证。

我的Web.config有

<system.net>
    <mailSettings>
        <smtp from="XXXX@XXXXX.XX">
            <network host="mail.XXXXX.XX" port="25" userName="XXXX@XXXXX.XX" password="XXXXXXXX" defaultCredentials="true" />
        </smtp>
    </mailSettings>
</system.net>

我的代码

            MailMessage message = new MailMessage();
            message.From = new MailAddress("XXXX@XXXXX.XX");
            message.To.Add(new MailAddress(split[0]));
            message.Subject = split[1];
            message.Body = ContactUsBody(model);
            message.IsBodyHtml = true;

            SmtpClient client = new SmtpClient();
            client.Send(message);

它在client.Send(消息)上抛出错误,我认为由于某种原因它不使用配置中的密码和用户名。 我已经尝试通过thunderbird登录电子邮件帐户,并且在那里发送或接收邮件没有问题。 我在这做错了什么?

1 个答案:

答案 0 :(得分:4)

它不使用您提供的凭据,因为您已将其设置为使用默认凭据。

试试这个:

<system.net>
    <mailSettings>
        <smtp from="XXXX@XXXXX.XX" deliveryMethod="network">
            <network host="mail.XXXXX.XX" port="25" userName="XXXX@XXXXX.XX" password="XXXXXXXX" defaultCredentials="false" />
        </smtp>
    </mailSettings>
</system.net>