我想从我网站的电子邮件“info@mysitename.com”发送电子邮件。 但是有一个错误,电子邮件不发送。 在我的代码和错误中:
public void SendMail(string Subject, string To, string Body)
{
SmtpClient MyMail = new SmtpClient();
MailMessage MyMsg = new MailMessage();
MyMail.Host = "info@sitename.com";
MyMsg.To.Add(new MailAddress(To));
MyMsg.Subject = Subject;
MyMsg.SubjectEncoding = Encoding.UTF8;
MyMsg.IsBodyHtml = true;
MyMsg.From = new MailAddress("info@sitename.com", "myname");
MyMsg.BodyEncoding = Encoding.UTF8;
MyMsg.Body = Body;
MyMail.UseDefaultCredentials = false;
NetworkCredential MyCredentials = new NetworkCredential("info@sitename", "pass");
MyMail.Credentials = MyCredentials;
MyMail.Send(MyMsg);
}
答案 0 :(得分:1)
您误解了SmtpClient Host属性的用途。
这行代码错了......
MyMail.Host = "info@sitename.com";
MyMail.Host
应指向您的SMTP服务器 - 您正尝试将其设置为FROM地址。
您已经在MailMessage
对象中设置了FROM地址,如下所示......
MyMsg.From = new MailAddress("info@sitename.com", "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或域名。