2

我有一个托管在 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!<br> 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: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机未能响应 System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket) 的 68.178.232.62:25 , IPAddress& 地址, ConnectSocketState 状态, IAsyncResult asyncResult, Int32 超时, Exception& 异常)---内部异常堆栈跟踪结束---在 System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner,

我很依赖这个错误。:( 我用 smtpout.secureserver.net 更改了我的 SMTP 服务器,但不起作用。请帮帮我。提前致谢。

4

3 回答 3

1

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

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);
于 2013-09-09T05:50:33.500 回答
1

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

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

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

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

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

  2. 将我的网页放在我的 Godaddy 共享服务器上(由于 Godaddy 添加的安全性,本地主机仍然无法发送 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 秒内送达您。如果您仍然找不到电子邮件,请检查您的垃圾邮件文件夹。

证明

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

于 2017-05-29T14:53:57.663 回答
-1

检查下面的代码。你必须改变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 += "<br />Email:" + txtemail.Text + "";
body += "<br /><br /> Subject :" + txtsubject.Text + "";
body += "<br /><br />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);
于 2014-12-10T09:03:00.827 回答