错误:服务器不支持安全连接

时间:2009-01-30 18:15:00

标签: asp.net gmail system.net.mail

好的,我已经使用以下脚本一年多来从我的主机发送电子邮件(通过gmail),它工作得很好( Settings.Get()只返回字符串):

public class Email : SmtpClient
{
    public MailMessage Message { get; private set; }

    public Email(string to, string from, string subject, string body) : base(Settings.Get("smtp"), 25)
    {
        this.EnableSsl = Convert.ToBoolean(Settings.Get("ssl"));
        if(this.EnableSsl)
            this.Credentials = new System.Net.NetworkCredential(Settings.Get("gm"), Settings.Get("gmp"));
        this.Message = new MailMessage(from, to, subject, body);
    }

    public void Send()
    {
        try { this.Send(Message); }
        catch (Exception ex) { throw ex; }
    }
}

但是,从昨天开始,我收到了这个错误:

错误:服务器不支持安全连接。

当然,我的主人当然认为这不是他们的错,但我没有改变任何事情。此外,它仍然可以在我的本地和测试机器上正常工作。知道可能导致这种情况的原因所以我可以告诉他们解决这个问题吗?

谢谢......这让我疯了!

5 个答案:

答案 0 :(得分:5)

您使用的是什么SMTP服务器和端口?如果您直接连接到smtp.gmail.com以发送ssl邮件,则需要使用端口465或587。

看起来您正在使用端口25,您确定Settings.Get("ssl")返回false吗?

Read here for details.

答案 1 :(得分:0)

检查你的事件日志,也许握手beetwen你的电脑和服务器不工作。或证书没有被下载或它可能包含错误可能是从gmail发出的奇怪的事情

答案 2 :(得分:0)

指定要使用的端口587也为我解决了这个问题 -

错误:服务器不支持安全连接。

我工作的公司创建了一个Windows服务,它可以完成一些工作,然后从gmail发送一封电子邮件。在一开始它发送电子邮件就没问题了。在Vista计算机上安装服务后,我们发现它不会发送电子邮件。一旦我们在Windows 2008服务器上安装它,就会发生同样的事情。我们甚至开始注意到它是少量的XP机器。一旦我们将端口更改为587,它就会再次正常工作并发送电子邮件。

以下是一些示例代码,它们适用于我们尝试的所有计算机(XP,Vista,Server 2008)。

        Dim client As New Net.Mail.SmtpClient("smtp.gmail.com")
        client.Port = 587
        client.EnableSsl = True
        client.UseDefaultCredentials = False
        client.Credentials = loginInfo
        client.Send(mm)

答案 3 :(得分:0)

SmtpServer.Port = 587;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("xx@xx.com", "password");
SmtpServer.EnableSsl = true;

答案 4 :(得分:0)

更改:

 SmtpServer.EnableSsl = true;

收件人:

SmtpServer.EnableSsl = false;

这将解决问题。