2011-02-17 133 views
3

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

我几乎没有使用C#发送电子邮件的经验,所以这里的任何帮助将不胜感激。我所知道的是你必须使用System.Net.Mail命名空间。我试过这段代码,但它给了“Failure sending Mail”异常。

 new SmtpClient("smtp.server.com", 25).Send("[email protected]", 
             "[email protected]", 
             "subject", 
             "body"); 

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

+1

有3422352232341的样品大约#2和互联网... – 2011-02-17 12:15:46

回答

1

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

8

你不能离开这个字符串:

smtp.server.com

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

+0

在ASP.NET发送邮件嗯..我不知道是什么的SMTP服务器。我该如何弄清楚我的是什么,以及我有什么端口? – david 2011-02-17 12:16:28

+0

如果你在公司内部,请询问网络管理员,如果你在私人办公室检查你的互联网服务提供商的参数,如果你发现什么都没有创建一个Gmail帐户,并检查Gmail网站如何启用,使用和配置与Gmail的smpt和pop3 。 – 2011-02-17 12:18:01

+0

我已经想通了。不过谢谢你的帮助。 – david 2011-02-17 12:20:55

2

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

16

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

试试这个:

 MailMessage mailMsg = new MailMessage(); 
     mailMsg.To.Add("[email protected]"); 
        // From 
     MailAddress mailAddress = new MailAddress("[email protected]"); 
     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); 
0

补充一点:

SmtpServer.EnableSsl = true;