【问题标题】:Getting error in sending email from Website hosted on Godaddy从 Godaddy 托管的网站发送电子邮件时出错
【发布时间】:2019-01-03 06:32:10
【问题描述】:

我在 Windows ASP.net 中托管了一个来自 Godaddy 的网站,并且还从那里购买了一封电子邮件。 在那个网站上,有一个 ContactUs 页面,任何访问者都可以在其中填写他的详细信息并提交。 为此,我在内部使用我的个人 gmail id 作为“发件人”和我的信息电子邮件 ID 作为“收件人”来发送电子邮件。 我正在使用他们在其网站上提供的示例代码 link

但我收到此错误:

System.dll 中出现“System.Net.Mail.SmtpException”类型的异常,但未在用户代码中处理。 附加信息:服务不可用,正在关闭传输通道。服务器响应为:无法连接到 SMTP 服务器 72.167.234.197 (72.167.234.197:25),连接错误 10060

在客户端。发送(消息)

根据该链接,这是我的 web.config 条目:

<system.net>
    <mailSettings>
      <smtp from="personalID@gmail.com">
        <network host="relay-hosting.secureserver.net" port="25" />
      </smtp>
    </mailSettings>
  </system.net>

这是我发送电子邮件的代码:

        StringBuilder body = new StringBuilder();
        body.AppendLine("<h3>New Query Received:</h3>");
        body.AppendLine();
        body.AppendFormat("Name : {0}<br />", txtName.Text);
        body.AppendFormat("Email : {0}<br />", txtEmail.Text);
        body.AppendFormat("Phone : {0}<br />", txtMobile.Text);
        body.AppendFormat("Query : {0}<br />", txtQuery.Text);

        MailMessage message = new MailMessage();
        message.From = new MailAddress("manish.rnsconsultancy@gmail.com");

        message.To.Add(new MailAddress("info@rns-consultancy.com"));

        message.Subject = "New Query from Website";
        message.Body = body.ToString();

        SmtpClient client = new SmtpClient();
        client.Send(message);

任何人都可以在这件事上帮助我,我被困在这个问题上,因为他们的客户支持除了那个链接之外一无所知。 我也尝试将电子邮件切换为 From 和 To,但得到了同样的错误。

【问题讨论】:

  • 从 web config 'from="personalID@gmail.com" 中的 smtp 标签中删除发件人地址,然后试试看。'
  • @RajeeshMenoth 感谢您的回复,但它不起作用,给出了同样的错误。我将其更改为:
  • 什么错误?端口 ssl 表示为无 ssl 和有 ssl 为 465。
  • @MohamedElrashid 您的链接完全取决于 php 方面。

标签: c# asp.net system.net.mail


【解决方案1】:

尝试使用此代码发送电子邮件。

使用 System.Net.Mail 发送电子邮件 要使用 System.Net.Mail 发送邮件,您需要在应用程序的 web.config 文件中使用这些 mailSettings 值配置 SMTP 服务:

<system.net>
  <mailSettings>
    <smtp from="your email address">
      <network host="relay-hosting.secureserver.net" port="25" />
    </smtp>
  </mailSettings>
</system.net>

当您在代码中实例化 SmtpClient 时,将使用网络规则的值。

PS:如果25有问题请更换3535端口

C# 代码示例 然后,您可以使用与此类似的代码从您的应用程序发送电子邮件:

MailMessage message = new MailMessage();
message.From = new MailAddress("your email address");

message.To.Add(new MailAddress("your recipient"));

message.Subject = "your subject";
message.Body = "content of your email";

SmtpClient client = new SmtpClient();
client.Send(message);

【讨论】:

  • 我之前也试过你的代码,25,我在原来的问题中遇到了错误。使用端口 3535,我收到错误消息:“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应 72.167.234.197:3535”
  • 哦,但是您联系了 GOGADDY 支持团队。
  • 没有从他们那里得到任何帮助,他们只提供了在我的情况下不起作用的文档化解决方案。当我将端口更改为 80 时,它在 localhost 上工作,但在实时网站上出现错误,错误为“没有权限在 web.config 中分配端口”
  • 由于某种原因,端口 25 在没有解释的情况下停止工作,产生超时错误。切换到 3535 端口效果很好。
【解决方案2】:

查了你DNS record我发现了

smtp.asia.secureserver.net

使用此代码并添加您的密码

var message = new MailMessage();

message.To.Add(new MailAddress("info@rns-consultancy.com"));
message.From = new MailAddress("info@rns-consultancy.com");

message.Subject = "Subject";
message.Body = "Body";

var smtpClient = new SmtpClient();



smtpClient.Host = "smtp.asia.secureserver.net";
smtpClient.Port = 25;
smtpClient.EnableSsl = false;
smtpClient.UseDefaultCredentials = false; 

smtpClient.Credentials =
     new NetworkCredential("info@rns-consultancy.com", "Password");

//smtpClient.Port = 465;
//smtpClient.EnableSsl = true;

//smtpClient.Timeout = 10000; 
// don't use 100000 in production it's 2 match 
//, just for testing
smtpClient.Timeout = 100000;

smtpClient.Send(message);

参考

【讨论】:

  • 不,此代码出现此错误:{“无法从传输连接读取数据:net_io_connectionclosed。”}
  • @HemantSisodia 是 info@rns-consultancy.com 分配 SMTP 中继?见in.godaddy.com/help/assign-smtp-relays-20153
  • 还需要帮助吗?
  • 我在“GoDaddy 企业电子邮件”设置中没有看到“其他选项”。当我点击“管理”时,我只看到更改密码、重新检查 DNS 和删除帐户的选项。
  • 您还需要帮助吗?
猜你喜欢
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 2017-12-04
  • 2016-11-14
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 2017-03-19
相关资源
最近更新 更多