10分鍾學會發送郵件到指定郵箱


很多小伙伴對於【程序發送郵件】不明覺厲的同時又羡慕嫉妒恨,其實發送郵件是一個很常用的功能,

我們這里就簡單做一個發送郵箱的案例。

PS:案例使用qq郵箱,當然,也可以使用其他郵箱,只要替換郵箱關鍵字即可,下面案例已做標注。

首先,我們需要一個【當前發件授權碼】,這個碼需要登錄發件箱里面進行開啟,我們先開啟一下。

1、登錄發件箱的郵箱,進入【設置】

2、點擊【賬戶】

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

授權碼獲取到后,我們就開始擼代碼了,總共三步

1、配置web文件;

2、編寫幫助類;

3、編寫控制器測試。

 

配置web文件

 <appSettings>
   <!--begin 郵箱配置-->
    <add key="smtpServer" value="smtp.qq.com" /><!--郵箱SMTP服務器 可用qq郵箱、163郵箱,只是關鍵字不一樣-->
    <add key="mailFrom" value="1509802981@qq.com" /><!--當前發件箱的郵箱賬號-->
    <add key="userPassword" value="wckfuxwamayvgiba" /> <!--當前發件授權碼,需要去發件開通獲取  -->
    <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 發送郵件
        /// <summary>
        /// 發送郵件
        /// </summary>
        /// <param name="mailSubject">郵箱主題</param>
        /// <param name="mailContent">郵箱內容</param>
        /// <returns>返回發送郵箱的結果</returns>
        public static bool SendEmail(string mailSubject, string mailContent)
        {
            // 設置發送方的郵件信息
            string smtpServer = System.Configuration.ConfigurationManager.AppSettings["smtpServer"];//SMTP服務器  //smtp.qq.com 
            string mailFrom = System.Configuration.ConfigurationManager.AppSettings["mailFrom"];  // 當前發件箱登陸名
            string userPassword = System.Configuration.ConfigurationManager.AppSettings["userPassword"]; //授權碼,在當前發送郵箱里面進行設置 
            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;//指定電子郵件發送方式
            //smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;//指定電子郵件發送方式
            smtpClient.Host = smtpServer; //指定SMTP服務器
            smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用戶名和密碼
            for (int i = 0; i < mailTos.Length; i++)
            {
                // 發送郵件設置        
                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;//優先級
                try
                {
                    smtpClient.Send(mailMessage); // 發送郵件
                    b = true;
                }
                catch (SmtpException ex)
                {
                    return false;
                }
            }
            return b;
        }


        #endregion
    }
}

編寫控制器測試(我使用的是控制器測試)

     //郵件發送
        public JsonResult Email()
        {
            ResultInfo result = new ResultInfo();
            EmailHelper.SendEmail("我是郵件主題", "我是郵件內容 ");
            result.res = true;
            result.info = "郵件發送成功!";
            return Json(result, JsonRequestBehavior.AllowGet);
        }

        //自定義返回json數據類型
        public class ResultInfo
        {
            public bool res { get; set; }
            public string info { get; set; }
        }

然后我們看一下效果

瀏覽器顯示發送成功

 

 

 指定郵箱也收到郵件了,為什么有兩條呢,因為我們web配置文件里面發送多個郵件,兩個都是同一個郵箱。

PS:我們發送的郵箱不一定需要寫到配置文件,可以寫到數據庫,然后讀取數據庫指定郵件賬戶進行發送。

程序員最快的成功就是復制,有一個成功的demo后再去進行逐步了解,快去試一試吧!

 

歡迎關注訂閱我的微信公眾平台【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂
公眾號:熊澤有話說
出處:https://www.cnblogs.com/xiongze520/p/10254123.html
創作不易,任何人或團體、機構全部轉載或者部分轉載、摘錄,請在文章明顯位置注明作者和原文鏈接。  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM