当前位置:  开发笔记 > 编程语言 > 正文

SmtpClient无法发送; 雷鸟可以

如何解决《SmtpClient无法发送;雷鸟可以》经验,为你挑选了0个好方法。

这应该是非常常规的,对吧?

public static SmtpClient GetSmtpClient()
{
    var client = new SmtpClient
    {
        Host = _smtpServer,
        UseDefaultCredentials = false,
        Credentials = new NetworkCredential(_smtpUsername, _smtpPassword),
        Port = _smtpPort, // port 25
        EnableSsl = _smtpSsl // false
    };
    return client;
}
...
var m = new MailMessage 
{
    // contents of mail message
}
using (var server = GetSmtpClient())
{
    server.Send(m);
}

但是server.Send()扔了一个SmtpException:

邮件发送失败.---> System.IO.IOException:无法从传输连接中读取数据:net_io_connectionclosed

我的凭证出了什么问题?SMTP服务器上的IP阻止?也许我的ISP阻止了对端口25的传出请求?我在与调试环境相同的机器上下载并安装了Thunderbird,并在那里设置了相同的SMTP凭据,并且它运行良好.

那么为什么它在Thunderbird中有效,而在我的代码中呢?

更新:按照@ tzachs的建议,我下载了Wireshark,发现交易进度是相同的,直到某一点.

雷鸟:

TCP 62  25 ? 50924 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1360 SACK_PERM=1
SMTP    143 S: 220 smtp.somedomain.com ESMTP Sendmail 8.13.8/8.13.8; Sat, 5 Dec 2015 15:46:22 -0500
TCP 54  25 ? 50924 [ACK] Seq=90 Ack=18 Win=5840 Len=0
SMTP    289 S: 250 smtp.somedomain.com Hello my-computer.myisp.com [x.x.60.61], pleased to meet you | 250 ENHANCEDSTATUSCODES | 250 PIPELINING | 250 8BITMIME | 250 SIZE | 250 DSN | 250 ETRN | 250 AUTH LOGIN PLAIN | 250 DELIVERBY | 250 HELP
SMTP    82  S: 235 2.0.0 OK Authenticated
etc.

SmtpClient:

TCP 62  25 ? 50889 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1360 SACK_PERM=1
SMTP    143 S: 220 smtp.somedomain.com ESMTP Sendmail 8.13.8/8.13.8; Sat, 5 Dec 2015 15:45:08 -0500
TCP 54  25 ? 50889 [ACK] Seq=90 Ack=21 Win=5840 Len=0
SMTP    289 S: 250 smtp.somedomain.com Hello my-computer.myisp.com [x.x.60.61], pleased to meet you | 250 ENHANCEDSTATUSCODES | 250 PIPELINING | 250 8BITMIME | 250 SIZE | 250 DSN | 250 ETRN | 250 AUTH LOGIN PLAIN | 250 DELIVERBY | 250 HELP
TCP 54  25 ? 50889 [FIN, ACK] Seq=325 Ack=62 Win=5840 Len=0
TCP 54  25 ? 50889 [ACK] Seq=326 Ack=63 Win=5840 Len=0

请注意,在SmtpClient跟踪中的"高兴见到你"之后,没有任何关于身份验证的信息.不是"接受",不是"失败" - 没有.只是终止连接.

这有什么亮点吗?

另一个更新: Smtp服务器正在运行SendMail,FWIW.该错误特定于此特定Smtp主机; 当我指向不同的服务器时,代码工作正常.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有