我见过其他人询问如何解决这个错误,答案总是一样的:修复你的 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 server 2008 R2,我有 iis6 和 iis7,我使用的是 Visual Studio Express 2013 for Web。
注意:我还尝试了传出端口 80、587 和 25。端口 25 花了大约 10 秒,然后给出错误“无法连接”。所有其他端口都给出了我要询问的错误。我还尝试允许访问防火墙上的所有传出端口。