c# 實(shí)現(xiàn)發(fā)送郵件到指定郵箱
很多小伙伴對(duì)于【程序發(fā)送郵件】不明覺厲的同時(shí)又羨慕嫉妒恨,其實(shí)發(fā)送郵件是一個(gè)很常用的功能,
我們這里就簡(jiǎn)單做一個(gè)發(fā)送郵箱的案例。
PS:案例使用qq郵箱,當(dāng)然,也可以使用其他郵箱,只要替換郵箱關(guān)鍵字即可,下面案例已做標(biāo)注。
首先,我們需要一個(gè)【當(dāng)前發(fā)件授權(quán)碼】,這個(gè)碼需要登錄發(fā)件箱里面進(jìn)行開啟,我們先開啟一下。
1、登錄發(fā)件箱的郵箱,進(jìn)入【設(shè)置】

2、點(diǎn)擊【賬戶】

3、下滑找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù),點(diǎn)擊開啟,根據(jù)提示操作完成后得到一個(gè)授權(quán)碼,小編這里已經(jīng)開啟過了,就不演示了,不懂的童鞋可以自行百度。

授權(quán)碼獲取到后,我們就開始擼代碼了,總共三步
1、配置web文件;
2、編寫幫助類;
3、編寫控制器測(cè)試。
配置web文件
<appSettings> <!--begin 郵箱配置--> <add key="smtpServer" value="smtp.qq.com" /><!--郵箱SMTP服務(wù)器 可用qq郵箱、163郵箱,只是關(guān)鍵字不一樣--> <add key="mailFrom" value="1509802981@qq.com" /><!--當(dāng)前發(fā)件箱的郵箱賬號(hào)--> <add key="userPassword" value="wckfuxwamayvgiba" /> <!--當(dāng)前發(fā)件授權(quán)碼,需要去發(fā)件開通獲取 --> <add key="mailTo" value="1509802981@qq.com;1509802981@qq.com" /><!--收件人:收件箱郵箱名稱,多個(gè)收件人以分號(hào);做分割符,這里我用同一個(gè)做測(cè)試--> <!--end 郵箱配置--> </appSettings>
編寫幫助類
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
namespace ProjectWebDAL
{
public static class EmailHelper
{
#region 發(fā)送郵件
/// <summary>
/// 發(fā)送郵件
/// </summary>
/// <param name="mailSubject">郵箱主題</param>
/// <param name="mailContent">郵箱內(nèi)容</param>
/// <returns>返回發(fā)送郵箱的結(jié)果</returns>
public static bool SendEmail(string mailSubject, string mailContent)
{
// 設(shè)置發(fā)送方的郵件信息
string smtpServer = System.Configuration.ConfigurationManager.AppSettings["smtpServer"];//SMTP服務(wù)器 //smtp.qq.com
string mailFrom = System.Configuration.ConfigurationManager.AppSettings["mailFrom"]; // 當(dāng)前發(fā)件箱登陸名
string userPassword = System.Configuration.ConfigurationManager.AppSettings["userPassword"]; //授權(quán)碼,在當(dāng)前發(fā)送郵箱里面進(jìn)行設(shè)置
string mailTo = System.Configuration.ConfigurationManager.AppSettings["mailTo"]; //收件人:收件箱郵箱名稱,多個(gè)收件人以分號(hào);做分割符
bool b = false;
string[] mailTos = mailTo.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
// 郵件服務(wù)設(shè)置
SmtpClient smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定電子郵件發(fā)送方式
//smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;//指定電子郵件發(fā)送方式
smtpClient.Host = smtpServer; //指定SMTP服務(wù)器
smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用戶名和密碼
for (int i = 0; i < mailTos.Length; i++)
{
// 發(fā)送郵件設(shè)置
MailMessage mailMessage = new MailMessage(mailFrom, mailTos[i]);
mailMessage.Subject = mailSubject;//主題
mailMessage.Body = mailContent;//內(nèi)容
mailMessage.BodyEncoding = Encoding.UTF8;//正文編碼
mailMessage.IsBodyHtml = true;//設(shè)置為HTML格式
mailMessage.Priority = MailPriority.Low;//優(yōu)先級(jí)
try
{
smtpClient.Send(mailMessage); // 發(fā)送郵件
b = true;
}
catch (SmtpException ex)
{
return false;
}
}
return b;
}
#endregion
}
}
編寫控制器測(cè)試(我使用的是控制器測(cè)試)
//郵件發(fā)送
public JsonResult Email()
{
ResultInfo result = new ResultInfo();
EmailHelper.SendEmail("我是郵件主題", "我是郵件內(nèi)容 ");
result.res = true;
result.info = "郵件發(fā)送成功!";
return Json(result, JsonRequestBehavior.AllowGet);
}
//自定義返回json數(shù)據(jù)類型
public class ResultInfo
{
public bool res { get; set; }
public string info { get; set; }
}
然后我們看一下效果

瀏覽器顯示發(fā)送成功

指定郵箱也收到郵件了,為什么有兩條呢,因?yàn)槲覀僿eb配置文件里面發(fā)送多個(gè)郵件,兩個(gè)都是同一個(gè)郵箱。
PS:我們發(fā)送的郵箱不一定需要寫到配置文件,可以寫到數(shù)據(jù)庫,然后讀取數(shù)據(jù)庫指定郵件賬戶進(jìn)行發(fā)送。
程序員最快的成功就是復(fù)制,有一個(gè)成功的demo后再去進(jìn)行逐步了解,快去試一試吧!
以上就是c# 實(shí)現(xiàn)發(fā)送郵件到指定郵箱的詳細(xì)內(nèi)容,更多關(guān)于c# 發(fā)送郵件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器
這篇文章介紹了C#開發(fā)WinForm項(xiàng)目實(shí)現(xiàn)HTML編輯器的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
DevExpress之ChartControl創(chuàng)建Drill-Down樣式的Title實(shí)例
這篇文章主要介紹了DevExpress之ChartControl創(chuàng)建Drill-Down樣式的Title實(shí)現(xiàn)方法,以實(shí)例形式講述了創(chuàng)建Drill-Down樣式的Title原理與實(shí)現(xiàn)過程,需要的朋友可以參考下2014-10-10
C#+MO實(shí)現(xiàn)一個(gè)道路編輯軟件(剛開始)
C#+MO實(shí)現(xiàn)一個(gè)道路編輯軟件(剛開始)...2007-04-04
使用C#實(shí)現(xiàn)在word中插入頁眉頁腳的方法
這篇文章主要介紹了使用C#實(shí)現(xiàn)在word中插入頁眉頁腳的方法,是操作Word的常見方法,有一定的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下2014-08-08

