错误:发送邮件失败..无法从传输连接读取数据:net_io_connectionclosed

时间:2013-10-10 07:13:53

标签: asp.net smtpclient

我见过其他人在询问如何修复此错误的问题,答案总是一样的:修复你的iis6 / 7 / smtp服务器。麻烦的是,我没有使用自己的SMTP服务器,我正在使用Godaddy的!

Godaddy是我的域名注册。我已经为他的域名购买了电子邮件。他们向我提供了以下信息(用于连接除“Outlook”之外的“其他”软件):

Account: myemail@mydomain.com 
Your name: Enter your name
User Name: myemail@mydomain.com 
Password: Enter your email password
SMTP (Outgoing Mail Server): smtpout.secureserver.net

是的,它没有提到港口。所以我查了更多关于smtpout.secureserver.net的信息,我也发现了这个信息(http://products.secureserver.net/email/email_outlook.htm):

Port: 3535 or 80.

所以,这是我的代码:

Public Function SendMail(ByVal To_Email As String, ByVal Subject As String, ByVal Message As String) As Boolean
    Try
        Dim FROM_EMAIL As String = "MY EMAIL"
        Dim FROM_NAME As String = "MY NAME"
        Dim TheseCredentials As New Net.NetworkCredential(FROM_EMAIL, "MY EMAIL PASSWORD")
        Dim NetMail As New Net.Mail.MailMessage
        Dim MailClient As New Net.Mail.SmtpClient()
        NetMail.From = New Net.Mail.MailAddress(FROM_EMAIL, FROM_NAME)
        NetMail.To.Add(New Net.Mail.MailAddress(To_Email))
        NetMail.IsBodyHtml = True
        NetMail.Subject = Subject
        NetMail.Body = Message
        MailClient.Host = "smtpout.secureserver.net"
        MailClient.Port = 3535
        MailClient.UseDefaultCredentials = False
        MailClient.Credentials = TheseCredentials
        MailClient.Send(NetMail)
        Return True
    Catch ex As Exception
        Return False
    End Try
End Function

我在MailClient.Send(NetMail)命令上收到错误。

注意:我的计算机上没有运行smtp服务器。但是,我认为我不需要它,因为我使用的是第三方smtp服务器。

注意:我的计算机是Windows Web服务器2008 R2,我有iis6和iis7,我正在使用Visual Studio Express 2013 for Web。

注意:我也尝试了传出端口80,587和25.端口25花了大约10秒然后给出错误“无法连接”。所有其他端口都给出了我要问的错误。我还尝试允许访问防火墙上的所有传出端口。

1 个答案:

答案 0 :(得分:3)

解决:我已经在godaddy上注册了我的网站,但我没有与他们一起托管。无论如何,问题是我的错。我没有为我的域名设置DNS服务器名称。我必须设置我的“MX”服务器,包括:

DNS "MX" server: smtp.secureserver.net (priority 0)
DNS "MX" server: mailstore1.secureserver.net (priority 10)

完成后,我不得不等待大约一个小时(可能需要24小时)才能使DNS同步。然后宾果游戏,我上面的代码工作得很好。我通过调用godaddy支持得到了这些服务器名称,他们是那些通过电话确认我没有为我的网站设置MX服务器的人。

注意:我仍然我的计算机上没有运行smtp服务器。拥有自己的smtp服务器以使用Microsoft Framework发送电子邮件是必要的 NOT 如果您有一个允许您以这种方式发送电子邮件的电子邮件提供商(许多“免费”电子邮件提供商阻止它)。< / p>