C#使用smtp郵箱服務模擬發送郵件


  QQ郵箱的第三方客戶端服務,可以讓我們很輕松地在我們自己的小程序中調用QQ郵箱來進行收發郵件。當然需要進行一些設置獲取授權碼。

1、開啟SMTP服務,相當於授權過程(開啟后,才可以通過這個模擬發送)

位置: 設置--> 賬號--> 賬號安全--> POP3/SMTP服務 -->開啟

 通過短信驗證后

 獲取SMTP服務的授權碼(發送郵件的授權信息,這個很重要)

2、編寫發送郵箱郵件代碼(引用:System.Net,System.Net.Mail)

    /// <summary>
    /// 郵件發送幫助類
    /// </summary>
    public class SMTPSendHelper
    {
        /// <summary>
        /// 通過客戶端發送郵件信息(如果發件人使用QQ郵箱,那么對應的smtpService需改成smtp.qq.com)
        /// 前提:發件人需要到郵箱中啟用第三方客戶端服務,位置:設置-->賬戶-->POP3/SMTP服務 -->開啟,獲取郵箱授權碼
        /// </summary>
        /// <param name="senderEmail">發件人郵箱</param>
        /// <param name="authCode">發件人郵箱授權碼</param>
        /// <param name="receiverEmail">收件人郵箱</param>
        /// <param name="emailTitle">郵件標題</param>
        /// <param name="emailContent">郵件內容</param>
        /// <param name="smtpService">郵件服務名:smtp.qq.com </param>
        public static void SendEmailBySMTP(string senderEmail,string authCode,string receiverEmail,string emailTitle,string emailContent,string smtpService)
        {          
            //實例化一個發送郵件類
            MailMessage mailMsg = new MailMessage();
            //發件人郵箱地址
            mailMsg.From = new MailAddress(senderEmail);
            //收件人郵箱地址
            mailMsg.To.Add(new MailAddress(receiverEmail));
            //郵件標題的編碼格式
            mailMsg.SubjectEncoding = Encoding.UTF8;
            //郵件標題
            mailMsg.Subject = emailTitle;
            //郵件內容的編碼格式
            mailMsg.BodyEncoding = Encoding.UTF8;
            //郵件內容
            mailMsg.Body = emailContent;
            //是否是html郵件
            mailMsg.IsBodyHtml = true;
            //郵件優先級
            mailMsg.Priority = MailPriority.High;
            //實例化一個SmtpClient類
            SmtpClient client = new SmtpClient();
            //設置郵件服務名,這里使用的是QQ郵箱,所以是smtp.qq.com, 若使用163郵箱,則是 smtp.163.com
            client.Host = smtpService;
            //設置郵件端口
            client.Port = 587; 
            //使用安全加密連接
            client.EnableSsl = true;
            //不和請求一塊發送
            client.UseDefaultCredentials = false;
            //驗證發件人身份(發件人郵箱,郵箱生成的授權碼)
            client.Credentials = new NetworkCredential(senderEmail, authCode);
            //發送
            client.Send(mailMsg);
        }
    }

3、調用發送郵箱郵件代碼

 //測試發送郵件
 SMTPSendHelper.SendEmailBySMTP("1442398694@qq.com", "fjdmmctbocdljbfc", "3239127208@qq.com", "測試郵件","測試郵件內容:htttp://www.baidu.com", "smtp.qq.com");

4、發送后效果

 

經過測試,可以發送到QQ郵箱、網易163郵箱、雅虎郵箱,其他郵箱未驗證 

參考網址:

https://www.cnblogs.com/ZxtIsCnblogs/p/8301819.html

https://blog.csdn.net/qq_39491295/article/details/83578376


免責聲明!

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



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