用System.Web.Mail發送郵件,適用於.net1.1,.net2.0請用System.Net.Mail
先引用System.Web
1,發送簡單郵件
[ C# ]
MailMessage mail = new MailMessage();mail.To = "[email protected]";mail.From = "[email protected]";mail.Subject = "this is a test email.";mail.Body = "this is my test email body";SmtpMail.SmtpServer = "localhost"; //your real server goes hereSmtpMail.Send( mail );
[ VB.Net ]
Dim mail As New MailMessage()mail.To = "[email protected]"mail.From = "[email protected]"mail.Subject = "this is a test email."mail.Body = "this is my test email body"SmtpMail.SmtpServer = "localhost" 'your real server goes hereSmtpMail.Send(mail)這裡的smtpserver只能是那些不需要驗證的smtp服務器,像126,sina,yahoo等等的郵箱,都需要驗證,所以不能用。用這些郵箱發信後面會講到2,發送Html郵件[ C# ] MailMessage mail = new MailMessage();mail.To = "[email protected]";mail.From = "[email protected]";mail.Subject = "this is a test email.";mail.BodyFormat = MailFormat.Html;mail.Body = "this is my test email body.<br><b>this part is in bold</b>";SmtpMail.SmtpServer = "localhost"; //your real server goes hereSmtpMail.Send( mail );
[ VB.Net ] Dim mail As New MailMessage()mail.To = "[email protected]"mail.From = "[email protected]"mail.Subject = "this is a test email."mail.BodyFormat = MailFormat.Htmlmail.Body = "this is my test email body.<br><b>this part is in bold</b>"SmtpMail.SmtpServer = "localhost" 'your real server goes hereSmtpMail.Send(mail)
3,發送附件
[ C# ]
MailMessage mail = new MailMessage();mail.To = "[email protected]";mail.From = "[email protected]";mail.Subject = "this is a test email.";mail.Body = "this is my test email body.";MailAttachment attachment = new MailAttachment( Server.MapPath( "test.txt" ) ); //create the attachmentmail.Attachments.Add( attachment ); //add the attachmentSmtpMail.SmtpServer = "localhost"; //your real server goes hereSmtpMail.Send( mail );
[ VB.Net ]
Dim mail As New MailMessage()mail.To = "[email protected]"mail.From = "[email protected]"mail.Subject = "this is a test email."mail.Body = "this is my test email body."Dim attachment As New MailAttachment(Server.MapPath("test.txt")) 'create the attachmentmail.Attachments.Add(attachment) 'add the attachmentSmtpMail.SmtpServer = "localhost" 'your real server goes hereSmtpMail.Send(mail)
4,修改發件人和收件人的名稱比如發件人的地址是[email protected],我們用outlook收到信,From一欄裡將直接顯示[email protected].能不能在From一欄裡顯示友好一點的名字呢?比如顯示Tony Gong方法如下:[ C# ] MailMessage mail = new MailMessage();mail.To = "\"John\" <[email protected]>";mail.From = "\"Tony Gong\" <[email protected]>";mail.Subject = "this is a test email.";mail.Body = "this is my test email body.";SmtpMail.SmtpServer = "localhost"; //your real server goes hereSmtpMail.Send( mail );
[ VB.Net ] Dim mail As New MailMessage()mail.To = """John"" <[email protected]>"mail.From = """Tony Gong"" <[email protected]>"mail.Subject = "this is a test email."mail.Body = "this is my test email body."SmtpMail.SmtpServer = "localhost" 'your real server goes hereSmtpMail.Send(mail)
5,發送給多人
[ C# ]
MailMessage mail = new MailMessage();mail.To = "[email protected];[email protected];[email protected]";mail.From = "[email protected]";mail.Subject = "this is a test email.";mail.Body = "this is my test email body.";SmtpMail.SmtpServer = "localhost"; //your real server goes hereSmtpMail.Send( mail );
[ VB.Net ]
Dim mail As New MailMessage()mail.To = "[email protected];[email protected];[email protected]"mail.From = "[email protected]"mail.Subject = "this is a test email."mail.Body = "this is my test email body."SmtpMail.SmtpServer = "localhost" 'your real server goes hereSmtpMail.Send(mail)
6,用需要Smtp驗證的郵箱發信
現在為了防止垃圾郵件,絕大部分Smtp服務器需要驗證了
發信方法如下:
[ C# ]
MailMessage mail = new MailMessage(); mail.To = "[email protected]"; mail.From = "[email protected]"; mail.Subject = "this is a test email."; mail.Body = "Some text goes here"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc"); //set your username here mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your password"); //set your passWord here SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here SmtpMail.Send( mail );
[ VB.Net ]
Dim mail As New MailMessage() mail.To = "[email protected]" mail.From = "[email protected]" mail.Subject = "this is a test email." mail.Body = "Some text goes here" mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1") 'basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc") 'set your username here mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "Your Password") 'set your password here SmtpMail.SmtpServer = "smtp.126.com" 'your real server goes here SmtpMail.Send(mail)7,修改smtp服務器的端口,以及使用SSL加密大部分smtp服務器的端口是25,但有些卻不是同時,絕大部分Smtp服務器不需要SSL登陸,有些卻需要比如Gmail,smtp端口是:465,同時支持SSL代碼如下:[ C# ] MailMessage mail = new MailMessage(); mail.To = "[email protected]"; mail.From = "[email protected]"; mail.Subject = "this is a test email."; mail.Body = "Some text goes here"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc"); //set your username here mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your password"); //set your passWord here mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport",465); mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here SmtpMail.Send( mail ); [ VB.Net ] Dim mail As New MailMessage() mail.To = "[email protected]" mail.From = "[email protected]" mail.Subject = "this is a test email." mail.Body = "Some text goes here" mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1") 'basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc") 'set your username here mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "Your Password") 'set your passWord here mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport",465) mail.FIElds.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true") SmtpMail.SmtpServer = "smtp.126.com" 'your real server goes here SmtpMail.Send(mail)