溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

發(fā)布時間:2021-03-15 10:46:31 來源:億速云 閱讀:314 作者:TREX 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“c# 如何實現(xiàn)發(fā)送郵件到指定郵箱”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

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

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

1、登錄發(fā)件箱的郵箱,進入【設(shè)置】

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

2、點擊【賬戶】

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

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

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

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

1、配置web文件;

2、編寫幫助類;

3、編寫控制器測試。

配置web文件

<appSettings>
  <!--begin 郵箱配置-->
  <add key="smtpServer" value="smtp.qq.com" /><!--郵箱SMTP服務(wù)器 可用qq郵箱、163郵箱,只是關(guān)鍵字不一樣-->
  <add key="mailFrom" value="1509802981@qq.com" /><!--當前發(fā)件箱的郵箱賬號-->
  <add key="userPassword" value="wckfuxwamayvgiba" /> <!--當前發(fā)件授權(quán)碼,需要去發(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">郵箱內(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"]; // 當前發(fā)件箱登陸名
      string userPassword = System.Configuration.ConfigurationManager.AppSettings["userPassword"]; //授權(quán)碼,在當前發(fā)送郵箱里面進行設(shè)置 
      string mailTo = System.Configuration.ConfigurationManager.AppSettings["mailTo"]; //收件人:收件箱郵箱名稱,多個收件人以分號;做分割符
      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)先級
        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("我是郵件主題", "我是郵件內(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; }
    }

然后我們看一下效果

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

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

c# 如何實現(xiàn)發(fā)送郵件到指定郵箱

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

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

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

“c# 如何實現(xiàn)發(fā)送郵件到指定郵箱”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI