10分钟学会发送邮件到指定邮箱
很多小伙伴對于【程序發(fā)送郵件】不明覺厲的同時又羨慕嫉妒恨,其實發(fā)送郵件是一個很常用的功能,
我們這里就簡單做一個發(fā)送郵箱的案例。
PS:案例使用qq郵箱,當然,也可以使用其他郵箱,只要替換郵箱關鍵字即可,下面案例已做標注。
首先,我們需要一個【當前發(fā)件授權碼】,這個碼需要登錄發(fā)件箱里面進行開啟,我們先開啟一下。
1、登錄發(fā)件箱的郵箱,進入【設置】
2、點擊【賬戶】
3、下滑找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,點擊開啟,根據(jù)提示操作完成后得到一個授權碼,小編這里已經(jīng)開啟過了,就不演示了,不懂的童鞋可以自行百度。
授權碼獲取到后,我們就開始擼代碼了,總共三步
1、配置web文件;
2、編寫幫助類;
3、編寫控制器測試。
?
配置web文件
<appSettings><!--begin 郵箱配置--><add key="smtpServer" value="smtp.qq.com" /><!--郵箱SMTP服務器 可用qq郵箱、163郵箱,只是關鍵字不一樣--><add key="mailFrom" value="1509802981@qq.com" /><!--當前發(fā)件箱的郵箱賬號--><add key="userPassword" value="wckfuxwamayvgiba" /> <!--當前發(fā)件授權碼,需要去發(fā)件開通獲取 --><add key="mailTo" value="1509802981@qq.com;1509802981@qq.com" /><!--收件人:收件箱郵箱名稱,多個收件人以分號;做分割符,這里我用同一個做測試--><!--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">郵箱內容</param>/// <returns>返回發(fā)送郵箱的結果</returns>public static bool SendEmail(string mailSubject, string mailContent){// 設置發(fā)送方的郵件信息string smtpServer = System.Configuration.ConfigurationManager.AppSettings["smtpServer"];//SMTP服務器 //smtp.qq.com string mailFrom = System.Configuration.ConfigurationManager.AppSettings["mailFrom"]; // 當前發(fā)件箱登陸名string userPassword = System.Configuration.ConfigurationManager.AppSettings["userPassword"]; //授權碼,在當前發(fā)送郵箱里面進行設置 string mailTo = System.Configuration.ConfigurationManager.AppSettings["mailTo"]; //收件人:收件箱郵箱名稱,多個收件人以分號;做分割符bool b = false;string[] mailTos = mailTo.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);// 郵件服務設置SmtpClient smtpClient = new SmtpClient();smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定電子郵件發(fā)送方式//smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;//指定電子郵件發(fā)送方式smtpClient.Host = smtpServer; //指定SMTP服務器smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用戶名和密碼for (int i = 0; i < mailTos.Length; i++){// 發(fā)送郵件設置 MailMessage mailMessage = new MailMessage(mailFrom, mailTos[i]);mailMessage.Subject = mailSubject;//主題mailMessage.Body = mailContent;//內容mailMessage.BodyEncoding = Encoding.UTF8;//正文編碼mailMessage.IsBodyHtml = true;//設置為HTML格式mailMessage.Priority = MailPriority.Low;//優(yōu)先級try{smtpClient.Send(mailMessage); // 發(fā)送郵件b = true;}catch (SmtpException ex){return false;}}return b;}#endregion} }編寫控制器測試(我使用的是控制器測試)
//郵件發(fā)送public JsonResult Email(){ResultInfo result = new ResultInfo();EmailHelper.SendEmail("我是郵件主題", "我是郵件內容 ");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ā)送成功
?
?
?指定郵箱也收到郵件了,為什么有兩條呢,因為我們web配置文件里面發(fā)送多個郵件,兩個都是同一個郵箱。
PS:我們發(fā)送的郵箱不一定需要寫到配置文件,可以寫到數(shù)據(jù)庫,然后讀取數(shù)據(jù)庫指定郵件賬戶進行發(fā)送。
程序員最快的成功就是復制,有一個成功的demo后再去進行逐步了解,快去試一試吧!
?
轉載于:https://www.cnblogs.com/xiongze520/p/10254123.html
總結
以上是生活随笔為你收集整理的10分钟学会发送邮件到指定邮箱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java string中文_Java将S
- 下一篇: Kotlin基础学习(1)