Asp.net ASP电子邮件发送错误

Asp.net ASP电子邮件发送错误,asp.net,Asp.net,我发现这个网站对于我以前遇到的所有问题都非常有用,但是我无法得到以下方面的帮助 我已经开发了一个网站,可以发送电子邮件。在localhost上,这工作非常好。当我说localhost时,我能够接收发送的电子邮件,但当我上传到服务器时,当它开始发送电子邮件时,我会遇到这个错误 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应IPADDRESS:PORT 尝试在端口的驱动器上ping,ping正在工作 这是密码 string strFrm = Config

我发现这个网站对于我以前遇到的所有问题都非常有用,但是我无法得到以下方面的帮助

我已经开发了一个网站,可以发送电子邮件。在localhost上,这工作非常好。当我说localhost时,我能够接收发送的电子邮件,但当我上传到服务器时,当它开始发送电子邮件时,我会遇到这个错误

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应IPADDRESS:PORT

尝试在端口的驱动器上ping,ping正在工作

这是密码

string strFrm = ConfigurationManager.AppSettings["FromAddress3"].ToString();

string[] receive = {"emailaddress1","emailaddress2","emailaddress3","emailaddress4"};

string subject = "New registration";

string body = "<html><head><title>Registered Candidates</title></head><body>bla bla bla</body></html>";

//I however have put reg exp validator on the form

if(txtEmail.Text.Contains("@") && txtEmail.Text.Contains("."))
{
    for (int i = 0; i <= receive.Length - 1; i++)
    {
        MailMessage msg = new MailMessage(strFrm, receive[i], subject, body);
        msg.IsBodyHtml = true;

        SmtpClient client = new SmtpClient();

        client.Send(msg);
     }

     Response.Redirect("Thankyou.html");
string strFrm=ConfigurationManager.AppSettings[“FromAddress3”].ToString();
字符串[]接收={“emailaddress1”、“emailaddress2”、“emailaddress3”、“emailaddress4”};
string subject=“新注册”;
string body=“已注册的候选人bla bla bla”;
//然而,我已经在表单上添加了reg exp验证程序
if(txtEmail.Text.Contains(“@”)和&txtEmail.Text.Contains(“.”)
{

对于(int i=0;i请确保您指向的是生产服务器上的SMTP服务,它可能不会像在开发计算机上那样在“localhost”上工作。ping服务器并不会真正告诉您是否启用了SMTP

我通常更喜欢在web.config中为我的站点设置SMTP:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="you@yourdomain.com">
      <network host="localhost" port="25" userName="user" password="pass" />
    </smtp>
  </mailSettings>
</system.net>

更新:

如果您的代码在开发机器上运行,并且在具有相同配置的服务器上出现故障,则可能存在某种阻塞。我建议尝试使用一个简单的实现,该实现只测试服务器SMTP配置。您可能希望尝试
,在发送电子邮件的g代码。请参阅MSDN上的。

已解决..:D

我的托管服务器是godaddy,我的托管计划只支持古老的system.web.mail即CDOSYS概念

这是代码

using System.Web.Mail;

private void SendEmail()
{
const string SERVER = "relay-hosting.secureserver.net";
MailMessage oMail = new System.Web.Mail.MailMessage();
oMail.From = "emailaddress@domainname";
oMail.To = "emailaddress@domainname";
oMail.Subject = "Test email subject";
oMail.BodyFormat = MailFormat.Html; // enumeration
oMail.Priority = MailPriority.High; // enumeration
oMail.Body = "Sent at: " + DateTime.Now;
SmtpMail.SmtpServer = SERVER;
SmtpMail.Send(oMail);
oMail = null; // free up resources
}

感谢雅各布的积极参与!:)

生产服务器是否在本地主机上启用了SMTP?您是否在Web.config中配置了SMTP设置?感谢您的回复Jakob。即使在我的本地主机上,程序也会连接到SMTP服务器,然后将邮件发送到提供的电子邮件地址。是的。我已经在Web.config中配置了设置,正如您在上面看到的,我已经完成了我在发送邮件时试图覆盖设置。看起来你没有覆盖SMTP地址?你确定服务器已启用SMTP吗?抱歉,我只是覆盖凭据。但是我更改了web.config。它看起来像这样,并且已删除NetworkCredential nc=new NetworkCredential(Usr,Pwd);client.usedaultcredentials=false;client.Credentials=nc;来自程序.Edited web.config。它看起来像这样,并且已删除NetworkCredential nc=new NetworkCredential(Usr,Pwd);client.UseDefaultCredentials=false;client.Credentials=nc;。但我还是得到了相同的结果。当我说localhost时,我将其托管在IIS上,并且此页面仍然连接到与we.config中相同的smtp服务器以发送邮件。使用最新更改更新您的问题,包括您的web.config.:)这会将电子邮件复制到某个文件夹,外部应用程序可以使用该文件夹发送相同的电子邮件。这对解决我的问题有何帮助?确认电子邮件生成代码正常工作,以及您正在处理服务器配置问题很有帮助。Jakob,在从本地系统运行时可以接收电子邮件。但当加载到到服务器我得到了这个错误。你现在提供了空白用户名/pw吗?请用你的更改编辑你的原始问题(这是一个答案),并且不要忘记更改你服务器的登录名/pw。(你应该现在删除这个答案)
using System.Web.Mail;

private void SendEmail()
{
const string SERVER = "relay-hosting.secureserver.net";
MailMessage oMail = new System.Web.Mail.MailMessage();
oMail.From = "emailaddress@domainname";
oMail.To = "emailaddress@domainname";
oMail.Subject = "Test email subject";
oMail.BodyFormat = MailFormat.Html; // enumeration
oMail.Priority = MailPriority.High; // enumeration
oMail.Body = "Sent at: " + DateTime.Now;
SmtpMail.SmtpServer = SERVER;
SmtpMail.Send(oMail);
oMail = null; // free up resources
}