我见过其他人在询问如何修复此错误的问题,答案总是一样的:修复你的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秒然后给出错误“无法连接”。所有其他端口都给出了我要问的错误。我还尝试允许访问防火墙上的所有传出端口。
答案 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>