我想从网站的电子邮件“ [email protected]”发送电子邮件。但是有错误,电子邮件不发送。在我的代码和错误中:
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("info@sitename", "pass");
MyMail.Credentials = MyCredentials;
MyMail.Send(MyMsg);
}
您误会了SmtpClient主机属性的用途。
这行代码是错误的...
MyMail.Host = "[email protected]";
MyMail.Host
应该指向您的SMTP服务器-您正在尝试将其设置为FROM地址。
您已经在MailMessage
对象中设置了FROM地址,在下面显示的行中...
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服务器,那将是您所缺少的。如果已设置,则主机属性应该是其IP或域名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句