C#实现发送邮件的三种方法
這篇文章主要介紹了C#實(shí)現(xiàn)發(fā)送郵件的三種方法,實(shí)例講述了Localhost,SMTP與SSL-SMTP三種實(shí)現(xiàn)方法,對(duì)于C#項(xiàng)目開(kāi)發(fā)有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下
本文實(shí)例講述了C#實(shí)現(xiàn)發(fā)送郵件的三種方法。分享給大家供大家參考。具體方法分析如下:
一、問(wèn)題:
最近公司由于一個(gè)R&I項(xiàng)目的需要,用戶要求在購(gòu)買產(chǎn)品或出貨等一些環(huán)節(jié),需要發(fā)送郵件提醒或者說(shuō)每周一讓系統(tǒng)自動(dòng)采集數(shù)據(jù)發(fā)送一封E-mail,因此我也就找來(lái)相關(guān)資料,寫了一個(gè)Demo分享給大家,大家共同學(xué)習(xí)學(xué)習(xí)。
二、實(shí)現(xiàn)代碼:
通過(guò).Net FrameWork 2.0下提供的“System.Net.Mail”可以輕松的實(shí)現(xiàn),本文列舉了3種途徑來(lái)發(fā)送:
1.通過(guò)Localhost;
2.通過(guò)普通SMTP;
3.通過(guò)SSL的SMTP;
下面一個(gè)一個(gè)來(lái)說(shuō):
復(fù)制代碼 代碼如下:
public void SendMailLocalhost() ?
{ ?
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); ?
msg.To.Add("a@a.com"); ?
msg.To.Add("b@b.com"); ?
/* msg.To.Add("b@b.com"); ?
* msg.To.Add("b@b.com"); ?
* msg.To.Add("b@b.com");可以發(fā)送給多人 ?
*/ ?
msg.CC.Add(c@c.com); ?
/* ?
* msg.CC.Add("c@c.com"); ?
* msg.CC.Add("c@c.com");可以抄送給多人 ?
*/ ?
msg.From = new MailAddress("a@a.com", "AlphaWu", System.Text.Encoding.UTF8); ?
/* 上面3個(gè)參數(shù)分別是發(fā)件人地址(可以隨便寫),發(fā)件人姓名,編碼*/ ?
msg.Subject = "這是測(cè)試郵件";//郵件標(biāo)題 ?
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標(biāo)題編碼 ?
msg.Body = "郵件內(nèi)容";//郵件內(nèi)容 ?
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內(nèi)容編碼 ?
msg.IsBodyHtml = false;//是否是HTML郵件 ?
msg.Priority = MailPriority.High;//郵件優(yōu)先級(jí)?
??
SmtpClient client = new SmtpClient(); ?
client.Host = "localhost"; ?
object userState = msg; ?
try ?
{ ?
client.SendAsync(msg, userState); ?
//簡(jiǎn)單一點(diǎn)兒可以client.Send(msg); ?
MessageBox.Show("發(fā)送成功"); ?
} ?
catch (System.Net.Mail.SmtpException ex) ?
{ ?
MessageBox.Show(ex.Message, "發(fā)送郵件出錯(cuò)"); ?
} ?
}?
? ? public void SendMailLocalhost() ?
{ ?
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); ?
msg.To.Add("a@a.com"); ?
msg.To.Add("b@b.com"); ?
/* msg.To.Add("b@b.com"); ?
* msg.To.Add("b@b.com"); ?
* msg.To.Add("b@b.com");可以發(fā)送給多人 ?
*/ ?
msg.CC.Add(c@c.com); ?
/* ?
* msg.CC.Add("c@c.com"); ?
* msg.CC.Add("c@c.com");可以抄送給多人 ?
*/ ?
msg.From = new MailAddress(master@boys90.com, "dulei", System.Text.Encoding.UTF8); ?
/* 上面3個(gè)參數(shù)分別是發(fā)件人地址(可以隨便寫),發(fā)件人姓名,編碼*/ ?
msg.Subject = "這是測(cè)試郵件";//郵件標(biāo)題 ?
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標(biāo)題編碼 ?
msg.Body = "郵件內(nèi)容";//郵件內(nèi)容 ?
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內(nèi)容編碼 ?
msg.IsBodyHtml = false;//是否是HTML郵件 ?
msg.Priority = MailPriority.High;//郵件優(yōu)先級(jí)?
SmtpClient client = new SmtpClient(); ?
client.Host = "localhost"; ?
object userState = msg; ?
try ?
{ ?
client.SendAsync(msg, userState); ?
//簡(jiǎn)單一點(diǎn)兒可以client.Send(msg); ?
MessageBox.Show("發(fā)送成功"); ?
} ?
catch (System.Net.Mail.SmtpException ex) ?
{ ?
MessageBox.Show(ex.Message, "發(fā)送郵件出錯(cuò)"); ?
} ?
}
?
2.通過(guò)普通SMTP C#代碼如下
復(fù)制代碼 代碼如下:
public void SendMailUseZj() ? ?
{ ? ?
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); ? ?
msg.To.Add(a@a.com); ? ?
msg.To.Add(b@b.com); ? ?
/* ??
* msg.To.Add("b@b.com"); ??
* msg.To.Add("b@b.com"); ??
* msg.To.Add("b@b.com");可以發(fā)送給多人 ??
*/ ? ?
msg.CC.Add("c@c.com"); ? ?
/* ??
* msg.CC.Add("c@c.com"); ??
* msg.CC.Add("c@c.com");可以抄送給多人 ??
*/ ? ?
msg.From = new MailAddress("master@boys90.com", "dulei", System.Text.Encoding.UTF8); ? ?
/* 上面3個(gè)參數(shù)分別是發(fā)件人地址(可以隨便寫),發(fā)件人姓名,編碼*/ ? ?
msg.Subject = "這是測(cè)試郵件";//郵件標(biāo)題 ? ?
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標(biāo)題編碼 ? ?
msg.Body = "郵件內(nèi)容";//郵件內(nèi)容 ? ?
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內(nèi)容編碼 ? ?
msg.IsBodyHtml = false;//是否是HTML郵件 ? ?
msg.Priority = MailPriority.High;//郵件優(yōu)先級(jí) ? ?
? ?
SmtpClient client = new SmtpClient(); ??
client.Credentials = new System.Net.NetworkCredential("dulei@71info.com", "userpass"); ? ?
//在71info.com注冊(cè)的郵箱和密碼 ? ?
client.Host = "smtp.71info.com"; ? ?
object userState = msg; ? ?
try ? ?
{ ? ?
client.SendAsync(msg, userState); ? ?
//簡(jiǎn)單一點(diǎn)兒可以client.Send(msg); ? ?
MessageBox.Show("發(fā)送成功"); ? ?
} ? ?
catch (System.Net.Mail.SmtpException ex) ? ?
{ ? ?
MessageBox.Show(ex.Message, "發(fā)送郵件出錯(cuò)"); ? ?
} ? ?
}
?
3.通過(guò)SSL的SMTP
復(fù)制代碼 代碼如下:
public void SendMailUseGmail() ? ?
{ ? ?
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); ? ?
msg.To.Add(a@a.com); ? ?
msg.To.Add(b@b.com); ? ?
/* ??
?msg.To.Add("b@b.com"); ??
* msg.To.Add("b@b.com"); ??
* msg.To.Add("b@b.com");可以發(fā)送給多人 ??
*/ ? ?
msg.CC.Add(c@c.com); ? ?
/* ??
* msg.CC.Add("c@c.com"); ??
* msg.CC.Add("c@c.com");可以抄送給多人 ??
*/ ? ?
msg.From = new MailAddress("boys90.com", "dulei", System.Text.Encoding.UTF8); ? ?
/* 上面3個(gè)參數(shù)分別是發(fā)件人地址(可以隨便寫),發(fā)件人姓名,編碼*/ ? ?
msg.Subject = "這是測(cè)試郵件";//郵件標(biāo)題 ? ?
msg.SubjectEncoding = System.Text.Encoding.UTF8;//郵件標(biāo)題編碼 ? ?
msg.Body = "郵件內(nèi)容";//郵件內(nèi)容 ? ?
msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內(nèi)容編碼 ? ?
msg.IsBodyHtml = false;//是否是HTML郵件 ? ?
msg.Priority = MailPriority.High;//郵件優(yōu)先級(jí) ? ?
SmtpClient client = new SmtpClient(); ? ?
client.Credentials = new System.Net.NetworkCredential("boys90com@gmail.com", "password"); ? ?
//上述寫你的GMail郵箱和密碼 ? ?
client.Port = 587;//Gmail使用的端口 ? ?
client.Host = "smtp.gmail.com"; ? ?
client.EnableSsl = true;//經(jīng)過(guò)ssl加密 ? ?
object userState = msg; ? ?
try ? ?
{ ? ?
client.SendAsync(msg, userState); ? ?
//簡(jiǎn)單一點(diǎn)兒可以client.Send(msg); ? ?
MessageBox.Show("發(fā)送成功"); ? ?
} ? ?
catch (System.Net.Mail.SmtpException ex) ? ?
{ ? ?
MessageBox.Show(ex.Message, "發(fā)送郵件出錯(cuò)"); ? ?
} ? ?
}
總結(jié)
以上是生活随笔為你收集整理的C#实现发送邮件的三种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RIFF文件规范
- 下一篇: C# 发送邮件的记录(qq,126,Gm