尝试使用c#从aspx页面发送电子邮件时出错.无法解析远程名称:';www.blablabla.foo';

本文关键字:程名 blablabla foo www 出错 aspx 电子邮件 | 更新日期: 2023-09-27 18:00:06

我用c#在aspx中创建了一个注册页面。我写了这个简单的代码来在注册后发送邮件,但它不起作用。我知道这很容易受到SQL注入的攻击,但请忽略这一点,我只是想测试电子邮件是如何发送的。它显示错误无法解析远程名称:"www.blablabla.foo"

请告诉我什么是错误,我必须做什么修改,这样我才能发送电子邮件。

FileUpload1.PostedFile.SaveAs(Server.MapPath(".") + "//uploadimage//" + str);
string path = "../Alumni/uploadimage/" + str.ToString();
con.Open();
SqlCommand cmd = new SqlCommand("insert into highly-sql-injection-prone-table...", con);
cmd.ExecuteNonQuery();
con.Close();
MailMessage msg;
SqlCommand cmd1 = new SqlCommand();
string ActivationUrl = string.Empty;
string emailId = string.Empty;
cmd1.Parameters.AddWithValue("@Name", TextBox5.Text.Trim());
cmd1.Parameters.AddWithValue("@EmailId", TextBox1.Text.Trim());
cmd1.Parameters.AddWithValue("@Password", TextBox3.Text.Trim());
if (con.State == ConnectionState.Closed)
{
    con.Open();
}
cmd.ExecuteNonQuery();
msg = new MailMessage();
SmtpClient smtp = new SmtpClient();
emailId = TextBox1.Text.Trim();
msg.From = new MailAddress("info@blablabla.foo");
msg.To.Add(emailId);
msg.Subject = "Confirmation E-mail";
msg.Body = "Hi";
msg.IsBodyHtml = true;
smtp.Credentials = new NetworkCredential("info@blablabla.foo", "***************");
smtp.Port = 587;
smtp.Host = "smtp.blablabla.foo";
smtp.EnableSsl = true;
smtp.Send(msg);
ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", 
    "alert('Confirmation Link to activate your account has been sent to your email address');", true);
con.Close();
Session["New"] = TextBox1.Text;
Response.Redirect("Successfull.aspx");

尝试使用c#从aspx页面发送电子邮件时出错.无法解析远程名称:';www.blablabla.foo';

该错误表示域解析失败,并且错误消息与您的代码不一致。使用NSLOOKUP运行快速检查时,smtp名称似乎不存在于stjosephschoolrkl.org上。在NSLOOKUP工具中使用type=MX,然后询问它关于stjosephpschoolrkl.org的情况,可以看出邮件服务器的名称只是stjosephhschoolrkl.org,没有smtp。然后,我成功地在587端口telnet到了stjosephschoolrkl.org,并成功地键入了EHLO,并从MailEnable电子邮件服务器获得了标准的电子邮件服务器响应。

所以简短的回答,从你的smtp中删除"smtp."。主机线和你应该很好去。