C#Godaddy服务器上的电子邮件发送错误

我有一个托管在Godaddy服务器上的Web应用程序。 我被困在发送邮件错误。 我把我的代码放在这里

public void Mailing() { MailMessage message = new MailMessage(); try { MailAddress fromAddress = new MailAddress("mailadress@server.net"); message.From = fromAddress; message.To.Add("toresive@server.com"); message.CC.Add("ccresive@server.com"); message.Subject = "Hello client"; message.IsBodyHtml= true; string body = "Hello!
How are you?"; message.Body = body; SmtpClient smtpClient = new SmtpClient(); smtpClient.Host = "relay-hosting.secureserver.net"; smtpClient.Port = 465; smtpClient.EnableSsl = false; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential("mailadress@server.net", "Password"); // AdvancedIntellect.Ssl.SslSocket ssl = new AdvancedIntellect.Ssl.SslSocket(); smtpClient.Send(message); smtpClient.Timeout = 10000; } catch (Exception ex) { label2.Text = ex.Message; } } }

但是我得到了错误

System.Net.Mail.SmtpException:发送邮件失败。 —> System.Net.WebException:无法连接到远程服务器—> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机无法在System.Net.SService.ConnectSocketInternal的System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)上响应68.178.232.62:25(布尔connectFailure,套接字s4,套接字s6,套接字和套接字) ,IP地址和地址,ConnectSocketState状态,IAsyncResult asyncResult,Int32超时,exception和exception)—内部exception堆栈跟踪结束—在System.Net.ServicePoint.GetConnection(PooledStream PooledStream,对象所有者,布尔异步,IP地址和地址,套接字& System.Net.PooledStream.Activat上的System.Net.PooledStream.Activate(Object owningObject,Boolean async,Int32 timeout,GeneralAsyncDelegate asyncCallback)中的abortSocket,Socket&abortSocket6,Int32 timeout) System.Net.Mail.SmtpTransport.GetConnection上System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)的System.Net.ConnectionPool.GetConnection(Object owningObject,GeneralAsyncDelegate asyncCallback,Int32 creationTimeout)中的e(Object owningObject,GeneralAsyncDelegate asyncCallback) System.Net.Mail.SmtpClient.Send(MailMessage消息)上的System.Net.Mail.SmtpClient.GetConnection()处的(ServicePoint servicePoint)—内部exception堆栈跟踪结束—在System.Net.Mail.SmtpClient处。发送(MailMessage消息)在Form1.Mailing()的c:\ inetpub \ vhosts \ pay2school.net \ httpdocs \ IPTest \ Admin \ Form1.aspx.cs:第139行

我依赖这个错误。 :(我用smtpout.secureserver.net更改了我的SMTP服务器,但没有工作。请帮助我。提前谢谢。

EnableSsl应该是true。 如果您需要超时,那么应该在发送电子邮件之前设置其属性,尝试像这样调整

 SmtpClient smtpClient = new SmtpClient(); smtpClient.Host = "relay-hosting.secureserver.net"; smtpClient.Port = 465; smtpClient.EnableSsl = true; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential("mailadress@server.net", "Password"); ... smtpClient.Timeout = 10000; smtpClient.Send(message); 

当我说我以前的C#工作代码(使用Godaddy服务器发送电子邮件)不再发送电子邮件时,我遇到了同样的问题。 所以我花了5个小时才找到实际问题

问题是Godaddy改变了他们服务器上的设置。 因此,您将无法使用以下方式发送电子邮件:

  1. “smtpout.secureserver.net”主持人。
  2. 本地主机(本地系统)。

我通过做两件事来解决这个问题:

  1. 使用SmtpClient主机作为“relay-hosting.secureserver.net”。

  2. 把我的网页放在我的Godaddy共享服务器上(因为Godaddy添加的安全性,localhost仍然无法发送smtp电子邮件)。

这是我方面正确的工作代码

 MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress("test@yourdomain.com"); mailMessage.To.Add(new MailAddress("senderemail@gmail.com")); mailMessage.Subject = "hello"; mailMessage.IsBodyHtml = true; mailMessage.Body = "hello how are you"; SmtpClient client = new SmtpClient(); client.Credentials = new System.Net.NetworkCredential("test@yourdomain.com", "yourpassword"); client.Host = "relay-hosting.secureserver.net"; client.Send(mailMessage); 

在上面的代码中,看看我是如何添加主机的

 client.Host = "relay-hosting.secureserver.net"; 

邮件将在25到30秒的时间内到达您。 如果您仍然无法找到该电子邮件,请检查您的垃圾邮件文件夹。

certificate

在撰写此答案时,我测试了我的代码,并发现发送电子邮件到我的Gmail收件箱。 请参见下图作为certificate: 在此处输入图像描述

检查下面的代码。 你必须改变client.Host = "smtpout.secureserver.net."

 MailMessage msg = new MailMessage(txtemail.Text, "shopover@vibrantinfosystems.com"); msg.Subject = "Contact Us"; string body = "Name: " + txtname.Text.Trim() + ""; body += "
Email:" + txtemail.Text + ""; body += "

Subject :" + txtsubject.Text + ""; body += "

Message : " + txtmessage.Text + ""; msg.Body = body; msg.IsBodyHtml = true; SmtpClient client = new SmtpClient(); client.Host = "smtpout.secureserver.net."; client.Send(msg); client.Timeout = 10000; ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Mail Sent Successfully!!');", true);