从asp.net发送电子邮件时,SMTP服务器需要安全连接或客户端未经过身份验证错误

时间:2011-06-25 09:51:47

标签: asp.net

我正在尝试从我的asp.net应用程序发送电子邮件,该功能在我的机器上工作正常,但当我在网络服务器上部署它时,我收到错误:SMTP服务器需要安全连接或客户端是未经过身份验证。服务器响应为:5.5.1需要身份验证,

任何人都可以提供帮助吗?感谢

4 个答案:

答案 0 :(得分:8)

最后我设法解决了,SSL也应该在网络服务器上启用,这里有一个在IIS7上启用ssl的链接

http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx

答案 1 :(得分:6)

请试试这个

private void MailSendThruGmail()
    {
        MailAddress fromAddress = new MailAddress("sender@gmail.com", "From Name");
        MailAddress toAddress = new MailAddress("recipient@gmail.com", "To Name");
        const string subject = "test";
        const string body = @"Using this feature, you can send an e-mail message from an application very easily.";

        System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(fromAddress.Address, toAddress.Address, subject, body);
        msg.IsBodyHtml = true;

        var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("username", "password"),
            EnableSsl = true
        };

        try
        {
            client.Send(msg);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }

答案 2 :(得分:3)

转到您的邮件服务器并检查您的防火墙设置。然后转到gmail,在帐户设置中将您的服务器地址添加到gmail安全客户端列表中。

答案 3 :(得分:0)

您是域的一部分,SMTP服务器也在此域中。如果是这种情况,则可能是您自动通过Windows身份验证进行身份验证,并且运行IIS的用户可能是其所在计算机的本地用户。您可以在域用户下运行应用程序池并使用模拟(未经过测试,但应该可以使用),或者在发送电子邮件时以编程方式向SMTP服务器添加一些凭据。