首頁 後端開發 C#.Net教程 .net是怎麼發送郵件的?

.net是怎麼發送郵件的?

Jun 23, 2017 pm 04:14 PM
傳送 郵件

文件目錄

 

  • 簡介

  • #IEmailSender

#ISmtpEmailSender

NullEmailSender

設定

##整合MailKit

  • 安裝

  • 整合

  • ##用法

  • ##客製化

  •  
  • 簡介#發送郵件是一個很常用的任務,幾乎每個應用程式都需要。 Abp提供了一個基本的框架,用於簡單地發送郵件並為它分離出了郵件服務的配置。

  •  
  • IEmailSender它是一個你不需要了解它的細節就能簡單地用來發送郵件的服務,用法如下所示:

public class TaskManager : IDomainService
{private readonly IEmailSender _emailSender;    public TaskManager(IEmailSender emailSender)
    {
        _emailSender = emailSender;
    }public void Assign(Task task, Person person)
    {//Assign task to the persontask.AssignedTo = person;//Send a notification email        _emailSender.Send(
            to: person.EmailAddress,
            subject: "You have a new task!",
            body: $"A new task is assigned for you: <b>{task.Title}</b>",
            isBodyHtml: true);}
}
登入後複製
  • 我們簡單地註入IEmailSender,並使用Send方法,該方法有幾個重載版本,其中也有能接受MailMessage物件的重載(.net core裡不能用,因為.net core不包含SmtpClient和MailMessage)。  

  • ISmtpEmailSender
  • 同樣也有一個ISmtpEmailSender,它擴充了IEmailSender,加入了BuildClient方法,用來創建一個SmtpClient,然後可以直接使用SmtpClient(.net core裡不能用,因為.net core不包含SmtpClient和MailMessage)。大部分情況下使用ISmtpEmailSender就已足夠。  

  • NullEmailSender

    NullEmailSender是IEmailSender 的Null物件設計模式的實現,可用在單元測試和屬性依賴注入中。

     

    配置

    郵件發送使用了設定管理系統來讀取郵件發送的配置,所有設定的名稱都以常數的形式定義在Abp.Net.Mail .EmailSettingNames類別裡。以下是它的值和描述:

    Abp.Net.Mail.

    DefaultFromAddress

    :預設的郵件發送者的地址(如上面的範例)。

    Abp.Net.Mail.

    DefaultFromDisplayName

    :預設的郵件發送者顯示的名稱(如上面的範例)。

    Abp.Net.Mail.
    Smtp.Host

    : SMTP伺服器的IP或網域名稱(預設為127.0.0.1)。

    Abp.Net.Mail.

    Smtp.Port

    : SMTP伺服器的連接埠(預設為25)。

    Abp.Net.Mail.

    Smtp.UserName
    #: 當SMTP伺服器要求認證時,需要提供的使用者名稱。

    Abp.Net.Mail.
    Smtp.Password

    : 當SMTP伺服器要求認證時,需要提供的密碼。

    #########Abp.Net.Mail.###Smtp.Domain###: 當SMTP伺服器要求認證時,需要提供的網域名稱。 ############Abp.Net.Mail.###Smtp.EnableSsl###: 表示一個SMTP伺服器是(true)否(false)需要使用SSL連線(預設為false)。 ############Abp.Net.Mail.###Smtp.UseDefaultCredentials###: 為True時使用預設的憑證取代提供的使用者和密碼(預設為true)。 ############ ######整合MailKit######由於.net core不支援標準的System.Net.Mail.SmtpClient,所以我們需要第三方供應商來發送郵件,幸運地是,MailKit 是預設的Smtpclient的一個很好的代替,而且微軟也建議使用它。 ######Abp.MailKit 套件優雅地整合到了Abp的郵件發送系統裡,所以,你仍可像前面的方式透過MailKit使用IEmailSender。 ###### ######安裝######首先,安裝Abp.MailKit 套件到你的專案:######
    Install-Package Abp.MailKit
    登入後複製
    ###### #######整合######新增AbpMailKitModule 依賴你的模組:######
    [DependsOn(typeof(AbpMailKitModule))]public class MyProjectModule : AbpModule
    {//...}
    登入後複製
    ###### ######用法######你可以像前面描述的那樣使用IEmailSender ,因為Abp.MailKit套件為它註冊了MailKit的實作。也使用上面定義的配置。 ###### ######定制######在創建MailKit的SmtpClient時,你可能會有額外的配置或自己的定制,此時,你可以用你自己的實現替換IMailKitSmtpBuilder介面的註冊,不過可以透過繼承DefaultMailKitSmtpBuilder 更簡單。例如,你想為所有的SSL連線提供一個憑證,這種情況下,你可以重寫ConfigureClient方法,如下:######
    public class MyMailKitSmtpBuilder : DefaultMailKitSmtpBuilder{public MyMailKitSmtpBuilder(ISmtpEmailSenderConfiguration smtpEmailSenderConfiguration) 
            : base(smtpEmailSenderConfiguration)
        {
        }protected override void ConfigureClient(SmtpClient client)
        {client.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;        base.ConfigureClient(client);
        }
    }
    登入後複製
    ######然後在你的模組的PreInitialize方法中用你上面的實作取代IMailKitStmpBuilder介面的實作:######
    [DependsOn(typeof(AbpMailKitModule))]public class MyProjectModule : AbpModule
    {public override void PreInitialize()
        {        Configuration.ReplaceService<IMailKitSmtpBuilder, MyMailKitSmtpBuilder>();}//...}
    登入後複製
    ######(記得新增"using Abp.Configuration.Startup;"聲明,因為ReplaceService 的擴充方法定義在這個命名空間裡)。 ###

    以上是.net是怎麼發送郵件的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1666
    14
    CakePHP 教程
    1425
    52
    Laravel 教程
    1325
    25
    PHP教程
    1272
    29
    C# 教程
    1252
    24
    Outlook郵件遺失從控制台在Windows 11 Outlook郵件遺失從控制台在Windows 11 Feb 29, 2024 pm 03:16 PM

    Windows11的控制台中是否缺少Outlook郵件圖示?這一意外情況在一些依賴OutlookMail滿足通訊需求的個人中引起了困惑和擔憂。為什麼我的Outlook電子郵件沒有顯示在控制台中?控制台中沒有Outlook郵件圖示可能有幾個可能的原因:Outlook未正確安裝。從MicrosoftStore安裝Office應用程式不會將郵件小程式新增至控制台。 mlcfg32.cpl檔案在控制面板中的位置遺失。登錄中的mlcfg32.cpl檔案路徑不正確。作業系統目前未配置為運行此應用程式

    Word郵件合併列印空白頁 Word郵件合併列印空白頁 Feb 19, 2024 pm 04:51 PM

    如果您發現在使用Word列印郵件合併文件時出現空白頁,這篇文章將對您有所幫助。郵件合併是一項便捷的功能,讓您能夠輕鬆建立個人化文件並傳送給多個收件者。在MicrosoftWord中,郵件合併功能備受推崇,因為它能夠幫助使用者節省手動為每個收件者複製相同內容的時間。為了列印郵件合併文檔,您可以轉到郵件標籤。但有些Word使用者反映,在嘗試列印郵件合併文件時,印表機會列印空白頁或完全不列印。這可能是由於格式設定不正確或印表機設定問題。嘗試檢查文檔和印表機設置,確保列印前預覽文檔,以確保內容正確。如果

    告別 Windows 11 中的遠端郵件槽協議 告別 Windows 11 中的遠端郵件槽協議 Apr 14, 2023 pm 10:28 PM

    我們最近一直在談論微軟計劃添加到其最新作業系統Windows11中的許多功能。但是,不要以為微軟只會增加什麼也不收回。事實上,這家軟體巨頭開始刪除相當多的舊功能。在宣布計劃在Windows12發布之前停用MSDT功能後,雷德蒙開發人員帶來了更多的壞消息。我們實際上是在談論遠端郵件槽舊版工具。當我們說您實際上想知道這一點時,請相信我們。 Microsoft已開始在內部版本25314中棄用此功能我們相信您還記得,就在幾天前,微軟在其新的金絲雀頻道發布了內部版本25314。上述版本包含許多新功能

    如何修復 Outlook 電子郵件卡在寄件匣問題 如何修復 Outlook 電子郵件卡在寄件匣問題 May 01, 2023 am 10:01 AM

    最近,許多用戶回報了Outlook郵件卡在寄件匣中的問題。即使多次嘗試發送電子郵件,問題也沒有解決。當您看到此問題並檢查您的寄件匣資料夾時,該訊息將卡在那裡。電子郵件卡在Outlook寄件箱中的可能原因是:電子郵件中的附件超過了大小限制,這會減慢發送過程。郵件伺服器的Outlook帳號驗證問題Outlook或郵件伺服器離線Outlook中的傳送/接收設定不正確。其他一些軟體正在使用Outlook資料檔。防毒軟體會掃描傳出的電子郵件。如果這個問題一直困擾著您並且您無法發送電子郵件

    PHP非同步發送郵件:避免長時間等待郵件發送完成。 PHP非同步發送郵件:避免長時間等待郵件發送完成。 Sep 19, 2023 am 09:10 AM

    PHP非同步發送郵件:避免長時間等待郵件發送完成。導言:在Web開發中,發送郵件是常見的功能之一。但是,由於郵件發送需要與伺服器進行通信,往往會導致用戶在等待郵件發送完成的過程中出現長時間的等待。為了解決這個問題,我們可以使用PHP非同步發送郵件的方式來優化使用者體驗。本文將介紹如何透過具體的程式碼範例實現PHP非同步發送郵件,並避免長時間的等待。一、理解異步發送郵件

    抖音如何發給別人文件?上發給別人文件怎麼刪除? 抖音如何發給別人文件?上發給別人文件怎麼刪除? Mar 22, 2024 am 08:30 AM

    在抖音上,使用者不僅可以分享自己的生活點滴和才藝,還可以和其他使用者互動交流。在這個過程中,有時候我們需要向其他用戶發送文件,例如圖片、影片等。那麼,在抖音上如何發給別人文件呢?一、抖音上如何發給別人文件? 1.開啟抖音,進入你想要傳送檔案的聊天介面。 2.點選聊天介面中的「+」號,選擇「檔案」。 3.在檔案選項中,你可以選擇傳送圖片、影片、音訊等檔案。選擇你想要發送的文件後,點擊「發送」。 4.等待對方接受你的文件,一旦對方接受,文件就會傳輸成功。二、抖音上發給別人檔案怎麼刪除? 1.打開抖音,進入你發送文

    PHP郵件追蹤功能:了解使用者對郵件的行為和回饋。 PHP郵件追蹤功能:了解使用者對郵件的行為和回饋。 Sep 19, 2023 am 08:51 AM

    PHP郵件追蹤功能:了解使用者對郵件的行為和回饋在現代社會中,電子郵件已成為人們日常生活和工作中不可或缺的一部分。對企業來說,發送郵件是與客戶溝通、推廣產品或服務的重要方式之一。然而,一封郵件被發送出去後,我們如何知道它是否被收到、被讀取,或者用戶對郵件內容有何反應?這時,郵件追蹤功能就顯得格外重要了。郵件追蹤功能可以幫助我們了解使用者對郵件的行為和回饋

    修復:Windows 11、10 中郵件和日曆應用程式的錯誤代碼 0x80070490 修復:Windows 11、10 中郵件和日曆應用程式的錯誤代碼 0x80070490 Apr 13, 2023 pm 09:13 PM

    一些Windows 用戶在嘗試將Gmail 或任何其他電子郵件帳戶添加到Windows PC 上的郵件應用程式時報告了錯誤訊息「出現問題,我們很抱歉,但我們無法做到這一點」以及錯誤代碼0x80070490 在螢幕上。即使經過多次嘗試,客戶也無法將任何電子郵件帳戶新增至他們的郵件應用程式。用戶非常不滿意,並且不確定如何從這裡轉移。在郵件應用程式中新增電子郵件帳戶時出現此錯誤的可能原因可能是系統資料檔案損壞、郵件應用程式的一些內部問題、過時的郵件應用程式等。在分析了上述可能導致此錯誤的原因後

    See all articles