在asp.net中发送电子邮件

时间:2015-11-06 20:25:28

标签: asp.net email

我想从我网站的电子邮件“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);
}

这是错误: error message

1 个答案:

答案 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或域名。