0

好的,我已经使用以下脚本一年多来从我的主机发送电子邮件(通过 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; }
    }
}

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

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

现在当然我的主人认为这不是他们的错,但我没有改变任何东西。此外,它在我的本地和测试机器上仍然可以正常工作。知道是什么原因造成的,所以我可以告诉他们修复它吗?

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

4

6 回答 6

5

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

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

阅读此处了解详细信息。

于 2009-01-30T18:23:50.027 回答
2

改变:

 SmtpServer.EnableSsl = true;

到:

SmtpServer.EnableSsl = false;

这将对问题进行排序。

于 2018-08-09T01:17:14.710 回答
0

检查您的事件日志,可能是您的 PC 和服务器无法正常握手。或者证书没有被下载,或者它可能包含错误,这可能是来自 gmail 的一些奇怪的东西

于 2009-01-30T18:21:54.023 回答
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)
于 2009-11-06T17:20:44.207 回答
0
SmtpServer.Port = 587;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new System.Net.NetworkCredential("xx@xx.com", "password");
SmtpServer.EnableSsl = true;
于 2013-12-25T00:34:28.977 回答
0

转到 C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\rsreportserver.config 并找到“True”并将其设置为 false,如下所示:“False”

重新启动 SSRS 服务,你应该会很好。

于 2022-01-26T18:04:20.790 回答