【问题标题】:SmtpClient timeoutSmtpClient 超时
【发布时间】:2014-04-03 12:30:26
【问题描述】:

我正在尝试让 SmtpClient 发送邮件,但它总是以超时结束:(

我使用的设置在 Mozilla Thunderbird 中有效,因此我 100% 确定问题出在我的代码中。我就是看不出问题出在哪里。

这是我的代码:

            MailMessage email = new MailMessage(fromAddress, to, subject, body);

            SmtpClient smtp = new SmtpClient();
            smtp.Host = HOSTNAME;
            smtp.Port = PORT;
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(USERNAME, PASSWORD)
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.EnableSsl = true;
            smtp.Timeout = 10000;

            smtp.Send(email);

有什么想法可能会出错吗?

已对设置进行了双重检查,以确保它们正确无误。当我测试在 Thunderbird 中发送邮件时,我将它们从代码复制到了 Thunderbird(即我 100% 确定设置是正确的)。

谢谢!

【问题讨论】:

    标签: email smtp smtpclient


    【解决方案1】:

    似乎 SmtpClient 不能很好地处理 SSL。 (此处讨论:How can I send emails through SSL SMTP with the .NET Framework?SmtpClient wont authenticate over SSL/TLS (not pointing to gmail)

    您可以不指定端口和 enablesl 属性(默认值为 25,false),也可以使用其他 SMTP 客户端。

    【讨论】:

      【解决方案2】:

      由于它在雷鸟中工作,因此您的凭据似乎有效。您是否尝试过删除超时或围绕 smtp.send 创建一个 try/catch 以查看失败的原因?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-21
        • 2012-05-15
        • 2020-08-23
        • 2015-06-30
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多