如何使用C#发送邮件?

问题描述:

我想发送邮件到任何电子邮件地址,如何使用C#来完成。我正在本地主机上工作。如何使用C#发送邮件?

+1

Ppsslbe重复http://*.com/questions/449887/sending-e-mail-using-c – Dykam 2010-03-01 07:58:30

+0

Google it !!!!!! – Faruz 2010-03-01 08:17:41

+3

+1为了让您的时间接受答案:) – 2010-03-01 10:39:31

System.Net.Mail.MailMessage message=new System.Net.Mail.MailMessage(
       new MailAddress(EmailUsername), new MailAddress("toemailaddress")); 

message.Subject = "Message Subject"; // E.g: My New Email 
message.Body = "Message Body";   // E.g: This is my new email ... Kind Regards, Me 

对于SMTP一部分,你也可以使用SmtpClient

SmtpClient client = new SmtpClient(ServerIP); 
client.Credentials = new System.Net.NetworkCredential(EmailUsername, EmailPassword); 
client.Send(message); 

请考虑接受一些答案。接受率为0%并不是很好。


编辑修复愚蠢的错误。首先让我检查代码是否正确。

+1

'System.Web.Mail'已被弃用。 – 2010-03-01 07:50:29

+1

非常正确,更改为System.Net,谢谢。 – 2010-03-01 07:56:08

+0

“To”属性是一个集合,“From”不是一个字符串。 – 2010-03-01 08:00:20

您可以使用SmtpClient类并使用MailMessage实例调用Send(或​​)。这两个类都位于System.Net.Mail命名空间中。

SmtpClient的default constructor使用您的app/web.config中的configuration,但您可以使用other constructors来指定所需的SMTP设置。

// using System.Net.Mail; 

SmtpClient client = new SmtpClient(); 

MailMessage mm = new MailMessage() 
{ 
    Subject = "Subject here", 
    Body = "Body here" 
}; 

mm.To.Add("[email protected]"); 
mm.From = new MailMessage("[email protected]"); 

client.Send(mm); 
+0

+1指出填充我的答案。现在排序他们。 – 2010-03-01 08:16:39

只是补充一点,有一个非常好的网站,一切你应该知道 System.Net:Mail命名空间

它被称为:

http://www.SystemNetMail.com/

希望它可以帮助像以前一直在帮助我的人:)

+0

只是想说插头谢谢。我总是喜欢碰到其他喜欢我的网站的开发者。谢谢!戴夫。 – 2010-03-01 15:07:32

如果您使用ASP.Net MVC我建议你看看MvcMailer

尝试......

public static void Send(string pFrom, string pSubject, string pTo, string pBody) 
{ 
    System.Net.Mail.MailMessage loMail = new System.Net.Mail.MailMessage(); 
    System.Net.NetworkCredential loCredencial = new System.Net.NetworkCredential(MAIL_USERNAME, MAIL_PASSWORD); 
    loMail.To.Add(pTo); 
    loMail.Subject = pSubject; 
    loMail.From = new System.Net.Mail.MailAddress(pFrom); 
    loMail.IsBodyHtml = true; 
    loMail.Body = pBody; 
    System.Net.Mail.SmtpClient loSmtp = new System.Net.Mail.SmtpClient(MAIL_SMTP); 
    loSmtp.UseDefaultCredentials = false; 
    loSmtp.Credentials = loCredencial; 
    loSmtp.Port = MAIL_PORT; 
    loSmtp.Send(loMail); 
} 

这是发送邮件带附件

using System.Net; 
using System.Net.Mail; 

public void email_send() 
{ 
    MailMessage mail = new MailMessage(); 
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 
    mail.From = new MailAddress("your [email protected]"); 
    mail.To.Add("[email protected]"); 
    mail.Subject = "Test Mail - 1"; 
    mail.Body = "mail with attachment"; 

    System.Net.Mail.Attachment attachment; 
    attachment = new System.Net.Mail.Attachment("c:/textfile.txt"); 
    mail.Attachments.Add(attachment); 

    SmtpServer.Port = 587; 
    SmtpServer.Credentials = new System.Net.NetworkCredential("your [email protected]", "your password"); 
    SmtpServer.EnableSsl = true; 

    SmtpServer.Send(mail); 
}