【发布时间】:2016-09-15 09:34:52
【问题描述】:
当新用户使用 asp.net c# 在我的网站上注册时,如何发送激活电子邮件?我已经尝试了描述的步骤 this link 但我遇到了这个错误:
System.IO.IOException:无法从传输连接读取数据:net_io_connectionclosed。
是否有任何解决方案或任何其他方式发送电子邮件?
这是我的代码
using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text))
{
mm.Subject = "Account Activation";
string body = "Hello " + txtUsername.Text.Trim() + ",";
body += "<br /><br />Please click the following link to activate your account";
body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
body += "<br /><br />Thanks";
mm.Body = body;
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential("sender@gmail.com", "<password>");
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
建议的副本没有解决问题。我已经在使用 587 端口了。
【问题讨论】:
-
1) 你需要展示一些代码。 2) 您需要与 ACTUAL EMAIL SERVER 对话,并且该服务器需要能够接受来自您的连接。基于此错误
net_io_connectionclosed,听起来这不会发生。 -
查看此链接以了解有关“net_io_connectionclosed”错误的详细信息:SmtpException: Unable to read data from the transport connection: net_io_connectionclosed
-
我已经编辑了帖子,请看看是不是错了?? @paulsm4
-
您的代码不一定是问题 电子邮件服务器可能会非常挑剔他们将与谁交谈,以及他们将如何与您交谈。 Juan Pablo Melgarejo 的回复通过使用 Google 的电子邮件服务器
smtp.gmail.com绕过了该问题,建议: 1) 联系您的电子邮件管理员。确保您的设置正确;检查他的电子邮件日志是否有错误。 2) 试试谷歌邮箱:emailarchitect.net/easendmail/kb/csharp.aspx?cat=2 -
smtp.UseDefaultCredentials = true;应该是smtp.UseDefaultCredentials = false;- 因为你只是给了它非默认凭据