在asp.net中发送电子邮件

在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); 
} 

这是错误: error message

+0

你是否检查了它告诉你的异常的状态和响应属性? –

+0

您可以请将错误消息包含为文本吗? – Scott

+1

我怀疑“[email protected]”是一个SMTP主机的有效名称 – Steve

你是误会什么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或域名。

+0

我该如何设置SMTP服务器? –

+1

这是一个您将不得不进行的研究项目。只要说有很多选项,从Windows Server操作系统提供的内置SMTP服务器到付费的第三方软件,再到开源选项。这个论坛有点偏离主题。通常,如果您为拥有系统工程/ IT部门的公司工作,他们会为您设置它。这不是一个真正的编程相关的任务 - 一旦你有一个工作的SMTP服务器,但你应该对你的代码做的是正确地指出你的SmtpClient。 – Jim

+0

如果你想使用IIS作为你的SMTP服务器,这可能会有帮助... https://technet.microsoft.com/en-us/library/cc772058(v=ws.10).aspx – Jim