在asp.net中发送电子邮件
我想从我的网站的电子邮件“[email protected]”发送电子邮件。 但有一个错误,并且电子邮件不发送。 在我的代码和错误:在asp.net中发送电子邮件
public void SendMail(string Subject, string To, string Body)
{
SmtpClient MyMail = new SmtpClient();
MailMessage MyMsg = new MailMessage();
MyMail.Host = "[email protected]";
MyMsg.To.Add(new MailAddress(To));
MyMsg.Subject = Subject;
MyMsg.SubjectEncoding = Encoding.UTF8;
MyMsg.IsBodyHtml = true;
MyMsg.From = new MailAddress("[email protected]", "myname");
MyMsg.BodyEncoding = Encoding.UTF8;
MyMsg.Body = Body;
MyMail.UseDefaultCredentials = false;
NetworkCredential MyCredentials = new NetworkCredential("[email protected]", "pass");
MyMail.Credentials = MyCredentials;
MyMail.Send(MyMsg);
}
你是误会什么SmtpClient主机属性用于。
这里这行代码是错误的...
MyMail.Host = "[email protected]";
MyMail.Host
应该指向您的SMTP服务器 - 你试图将其设置为发件人地址。
你已经在你的MailMessage
对象设置发件人地址,诠释,他的线如下所示...
MyMsg.From = new MailAddress("[email protected]", "myname");
所以,只给你一个例子,我可能会在IP 10.1有一台服务器。 0.5,它运行在端口25上的SMTP服务器您需要将您的MyMail.Host = "10.1.0.5"
,甚至更好的设置它在这样的构造......
SmtpClient MyMail = new SmtpClient("10.1.0.5", 25);
现在,这只是一个例子 - 我不知道知道您是否可以在哪里设置SMTP服务器。但是如果你没有设置SMTP服务器,那是你错过的东西。如果您确实设置了它,则Host属性应该是其IP或域名。
我该如何设置SMTP服务器? –
这是一个您将不得不进行的研究项目。只要说有很多选项,从Windows Server操作系统提供的内置SMTP服务器到付费的第三方软件,再到开源选项。这个论坛有点偏离主题。通常,如果您为拥有系统工程/ IT部门的公司工作,他们会为您设置它。这不是一个真正的编程相关的任务 - 一旦你有一个工作的SMTP服务器,但你应该对你的代码做的是正确地指出你的SmtpClient。 – Jim
如果你想使用IIS作为你的SMTP服务器,这可能会有帮助... https://technet.microsoft.com/en-us/library/cc772058(v=ws.10).aspx – Jim
你是否检查了它告诉你的异常的状态和响应属性? –
您可以请将错误消息包含为文本吗? – Scott
我怀疑“[email protected]”是一个SMTP主机的有效名称 – Steve