net System.Web.Mail發送郵件 用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 here SmtpMail.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 here SmtpMail.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 attachment mail.Attachments.Add( attachment ); //add the attachment SmtpMail.SmtpServer = "localhost"; //your real server goes here SmtpMail.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 here SmtpMail.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 here SmtpMail.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 ); 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 ); |