ASP.NET Core中使用MialKit實現郵件發送

来源:https://www.cnblogs.com/hzpeng/archive/2019/10/28/11724089.html
-Advertisement-
Play Games

# 導包 首先我們需要導入 MailKit NuGet包,NuGet安裝包命令在下方拓展介紹中。 # 引用命名空間 # 郵件發送幫助類 藉助這一個簡單的郵件發送類我們就可以已經可以實現郵件發送功能了。 # 拓展(NuGet常用命令) 1、安裝指定版本:install-package <程式包名> - ...


# 導包

  首先我們需要導入 MailKit NuGet包,NuGet安裝包命令在下方拓展介紹中。

 

# 引用命名空間

using MailKit.Net.Smtp;
using MimeKit;

 

# 郵件發送幫助類

        /// <summary>
        /// 發送郵件
        /// </summary>
        /// <param name="Name">發件人名字</param>
        /// <param name="receive">接收郵箱</param>
        /// <param name="sender">發送郵箱</param>
        /// <param name="password">郵箱密碼</param>
        /// <param name="host">郵箱主機</param>
        /// <param name="port">郵箱埠</param>
        /// <param name="subject">郵件主題</param>
        /// <param name="body">郵件內容</param>
        /// <returns></returns>
        public async Task<bool> SendMailAsync(string Name, string receive, string sender, string password, string host, int port, string subject, string body)
        {
            try
            {
          # MimeMessage代表一封電子郵件的對象
                var message = new MimeMessage();
          # 添加發件人地址 Name 發件人名字 sender 發件人郵箱
                message.From.Add(new MailboxAddress(Name, sender));
          # 添加收件人地址
                message.To.Add(new MailboxAddress("", receive));
          # 設置郵件主題信息
                message.Subject = subject;
          # 設置郵件內容
                var bodyBuilder = new BodyBuilder() { HtmlBody = body };
                message.Body = bodyBuilder.ToMessageBody();
                using (var client = new SmtpClient())
                {
                    // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
                    client.ServerCertificateValidationCallback = (s, c, h, e) => true;
                    // Note: since we don't have an OAuth2 token, disable  
                    // the XOAUTH2 authentication mechanism.  
                    client.AuthenticationMechanisms.Remove("XOAUTH2");
                    client.CheckCertificateRevocation = false;
                    //client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
                    client.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);
                    // Note: only needed if the SMTP server requires authentication
                    client.Authenticate(sender, password);
                    await client.SendAsync(message);
                    client.Disconnect(true);
                    return true;
                }
            }
            catch (Exception ex)
            {
            }
            return false;
        }

 藉助這一個簡單的郵件發送類我們就可以已經可以實現郵件發送功能了。

 

# 拓展(NuGet常用命令) 

1、安裝指定版本:install-package <程式包名> -version <版本號>

2、更新包:Update-Package <程式包名>

3、重新安裝所有Nuget包(整個解決方案都會重新安裝)
  update-package -reinstall

4、重新安裝指定項目所有Nuget包
  update-package -project <項目名稱> -reinstall

5、正常卸載:uninstall-package <程式包名>

6、強制卸載:Uninstall-Package <程式包名> -Force

 

# 參考博文

https://blog.csdn.net/sD7O95O/article/details/89334103

https://www.cnblogs.com/qulianqing/p/7413640.html

https://www.cnblogs.com/savorboard/p/aspnetcore-email.html

https://www.cnblogs.com/daizhipeng/p/10955773.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 練習:將文本中的內容用詞雲的形式輸出 實現: 實現效果: ...
  • uvm_objection和uvm_component基礎 uvm_objection和uvm_component是uvm中兩大基礎類,剛開始學習的時候,對兩個東西認識不深,以為它們倆差不多,誰知道它兩是一個是“爺爺”,一個是孫子的關係,兩者貫穿整個 uvm驗證方法學。至於為什麼要劃分uvm_obj ...
  • Redis是一個key-value資料庫,支持存儲的value類型包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。在Java中,使用較為廣泛的客戶端有Redisson、Jedis。Spring Data Redis模... ...
  • 隨著互聯網時代的不斷發展,開發者可能會面臨這樣的困境:為瞭解決問題、提升開發效率而竭力研發出來的“創新”,似乎削弱了他們在公司的重要程度,甚至取代了他們原先的地位。比如,在雲原生時代,部分企業更願意選擇 K8s 來解決運維、彈性的問題,而不是組建一支需要耗費大量雇佣資金、管理資金的研發團隊。 對於 ...
  • 對於剛入門的Pythoner在學習過程中運行代碼是或多或少會遇到一些錯誤,剛開始可能看起來比較費勁。隨著代碼量的積累,熟能生巧當遇到一些運行時錯誤時能夠很快的定位問題原題。下麵整理了常見的17個錯誤,希望能夠幫助到大家。 1、忘記在if,for,def,elif,else,class等聲明末尾加 : ...
  • 【ASP.NET Core學習】基礎知識,配置文件,日誌,依賴註入 ...
  • 動手造輪子:實現一個簡單的依賴註入(一) Intro 在上一篇文章中主要介紹了一下要做的依賴註入的整體設計和大概編程體驗,這篇文章要開始寫代碼了,開始實現自己的依賴註入框架。 類圖 首先來溫習一下上次提到的類圖 服務生命周期 服務生命周期定義: 服務定義 服務註冊定義: 為了使用起來更方便添加了一些 ...
  • 描述:某次更新程式,需要給測試員MM測試,之前都是正常的,更新後給MM測試就報異常System.Net.WebException 基礎連接已經關閉:接收時發生錯誤 > System.IO.IOException: 無法從傳輸連接中讀取數據:你的主機中的軟體中止了一個已建立的連接。 排查第一步:首先用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...