C#如何发送电子邮件?

我正在使用C#.NET 4.0,并希望发送一封电子邮件到一个主题和正文的地址,正文将包含我应用程序中几个文本框的一些信息。

我几乎没有使用C#发送电子邮件的经验,所以任何帮助都将不胜感激。 我所知道的是你必须使用System.Net.Mail命名空间。 我尝试了这段代码,但它给出了“发送邮件失败”的例外情况。

new SmtpClient("smtp.server.com", 25).Send("test@hotmail.com", "test@gmail.com", "subject", "body"); 

上面的代码有什么问题? 此外,有没有更好的方式发送电子邮件?

我曾与三家知名ISP合作主持我的客户网站。 所有三个ISP都指示我使用“localhost”作为smtp服务器名称。

可能是您的身份validation(凭据)或服务器名称/端口不正确。

试试这个:

  MailMessage mailMsg = new MailMessage(); mailMsg.To.Add("test@hotmail.com"); // From MailAddress mailAddress = new MailAddress("you@hotmail.com"); mailMsg.From = mailAddress; // Subject and Body mailMsg.Subject = "subject"; mailMsg.Body = "body"; // Init SmtpClient and send on port 587 in my case. (Usual=port25) SmtpClient smtpClient = new SmtpClient("mailserver", 587); System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username", "password"); smtpClient.Credentials = credentials; smtpClient.Send(mailMsg); 

你不能留下这个字符串:

smtp.server.com

你应该有你的smtp服务器的名称,通常是mail.yourcompanyname.com或smtp.yourcompanyname.com

smtp.server.com真的是一个SMTP服务器吗? 你需要用真实的替换它。 您的ISP可能会为您提供一个,但它可能只会转发来自您的ISP所拥有的地址的电子邮件。

添加这个:

 SmtpServer.EnableSsl = true;