跳至頁尾內容
開發者更新

Mailkit C#(開發者的工作原理)

如何使用MailKit

對於任何想提升行銷水平的企業來說,MailKit是一個全面且強大的工具,用於管理電子郵件和SMS通訊。 例如,MailKit允許您建立模板並自動從選定的資料源生成電子郵件,這意味著您可以在不必手動構建或發送訊息的情況下,發送頻繁且更新的電子郵件。

在本指南中,我們將向您展示如何安裝和開始使用MailKit,以及如何將其與IronPDF整合,以建立一個強大的電子郵件和PDF生成方案。

什麼是MailKit?

MailKit是一個開源專案,已成為.NET應用開發的必備工具。 它是一個全面的電子郵件框架,支持通過SMTP和IMAP協議發送和接收電子郵件。 它使開發人員能夠輕鬆與郵件伺服器互動,發送HTML電子郵件,並管理安全設置,對需要電子郵件功能的.NET應用至關重要。

IronPDF允許在.NET應用中生成、渲染和操作PDF文件。它簡化了將HTML模板轉換為PDF並建立複雜文件的過程,讓它成為管理網頁資料PDF的理想工具。

開始使用MailKit

在您的專案中安裝MailKit

要在您的應用中使用MailKit,您需要安裝MailKit套件。 這可以通過MailKit在NuGet上這個.NET的套件管理器進行。 這是您可以這樣做的方法:

  • 打開您的C#專案於Visual Studio 導航到解決方案總覽,右鍵單擊您的專案,然後選擇管理NuGet套件*
  • 在NuGet套件管理器中搜尋'MailKit'並安裝。

為電子郵件操作設置MailKit

一旦安裝完成,您可以開始在應用中設置MailKit。 這涉及配置郵件發送的SMTP伺服器,以及可選的接收郵件的IMAP伺服器。 這是一個基本設置:

using MailKit.Net.Smtp;
using MimeKit;

public class EmailService
{
    public void SendEmail(string recipientAddress, string subject, string body)
    {
        var message = new MimeMessage();
        message.From.Add(new MailboxAddress("Your Name", "your@email.com"));
        message.To.Add(new MailboxAddress("", recipientAddress));
        message.Subject = subject;

        // Set the email body as plain text
        message.Body = new TextPart("plain")
        {
            Text = body
        };

        using (var client = new SmtpClient())
        {
            // Connect to the SMTP server
            client.Connect("smtp.server.com", 587, false);
            // Authenticate using your email credentials
            client.Authenticate("your@email.com", "yourpassword");
            // Send the email
            client.Send(message);
            // Disconnect from the server
            client.Disconnect(true);
        }
    }
}
using MailKit.Net.Smtp;
using MimeKit;

public class EmailService
{
    public void SendEmail(string recipientAddress, string subject, string body)
    {
        var message = new MimeMessage();
        message.From.Add(new MailboxAddress("Your Name", "your@email.com"));
        message.To.Add(new MailboxAddress("", recipientAddress));
        message.Subject = subject;

        // Set the email body as plain text
        message.Body = new TextPart("plain")
        {
            Text = body
        };

        using (var client = new SmtpClient())
        {
            // Connect to the SMTP server
            client.Connect("smtp.server.com", 587, false);
            // Authenticate using your email credentials
            client.Authenticate("your@email.com", "yourpassword");
            // Send the email
            client.Send(message);
            // Disconnect from the server
            client.Disconnect(true);
        }
    }
}
Imports MailKit.Net.Smtp
Imports MimeKit

Public Class EmailService
	Public Sub SendEmail(ByVal recipientAddress As String, ByVal subject As String, ByVal body As String)
		Dim message = New MimeMessage()
		message.From.Add(New MailboxAddress("Your Name", "your@email.com"))
		message.To.Add(New MailboxAddress("", recipientAddress))
		message.Subject = subject

		' Set the email body as plain text
		message.Body = New TextPart("plain") With {.Text = body}

		Using client = New SmtpClient()
			' Connect to the SMTP server
			client.Connect("smtp.server.com", 587, False)
			' Authenticate using your email credentials
			client.Authenticate("your@email.com", "yourpassword")
			' Send the email
			client.Send(message)
			' Disconnect from the server
			client.Disconnect(True)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

設置SMTP和IMAP伺服器

配置SMTP伺服器以發送電子郵件

要使用MailKit發送電郵,您需要配置SMTP伺服器。 SMTP(簡單郵件傳輸協議)伺服器負責將您的電子郵件發送給指定的接受者。 這是如何在您的應用中設置SMTP伺服器的指南:

  • 選擇SMTP服務:您可以使用如Gmail、Outlook或任何其他提供SMTP支持的流行電子郵件服務。
  • SMTP伺服器詳細資訊:獲取SMTP伺服器地址、端口號碼,以及您選擇的電子郵件服務所需的身份驗證詳細資料(使用者名和密碼)。

範例:Gmail的SMTP配置

這是配置SMTP客戶端以使用Gmail的SMTP伺服器發送電子郵件的範例:

using MailKit.Net.Smtp;

// Connecting and authenticating to Gmail's SMTP server
using (var smtpClient = new SmtpClient())
{
    smtpClient.Connect("smtp.gmail.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    smtpClient.Authenticate("yourgmail@gmail.com", "yourpassword");
    // Send your message here
    smtpClient.Disconnect(true);
}
using MailKit.Net.Smtp;

// Connecting and authenticating to Gmail's SMTP server
using (var smtpClient = new SmtpClient())
{
    smtpClient.Connect("smtp.gmail.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    smtpClient.Authenticate("yourgmail@gmail.com", "yourpassword");
    // Send your message here
    smtpClient.Disconnect(true);
}
Imports MailKit.Net.Smtp

' Connecting and authenticating to Gmail's SMTP server
Using smtpClient As New SmtpClient()
	smtpClient.Connect("smtp.gmail.com", 587, MailKit.Security.SecureSocketOptions.StartTls)
	smtpClient.Authenticate("yourgmail@gmail.com", "yourpassword")
	' Send your message here
	smtpClient.Disconnect(True)
End Using
$vbLabelText   $csharpLabel

設定IMAP伺服器以接收電子郵件

要接收和閱讀電子郵件,請配置IMAP(網際資訊存取協議)伺服器。 IMAP允許您直接在電子郵件伺服器上存取和管理您的電子郵件,使其成為電子郵件客戶端的流行選擇。

連接到IMAP伺服器

要連接到IMAP伺服器,您需要伺服器地址、端口號和帳戶憑據。 這是一個基本的連接設置:

using MailKit.Net.Imap;

// Connecting and authenticating to Gmail's IMAP server
using (var imapClient = new ImapClient())
{
    imapClient.Connect("imap.gmail.com", 993, true);
    imapClient.Authenticate("yourgmail@gmail.com", "yourpassword");
    // Access and manage your inbox here
    imapClient.Disconnect(true);
}
using MailKit.Net.Imap;

// Connecting and authenticating to Gmail's IMAP server
using (var imapClient = new ImapClient())
{
    imapClient.Connect("imap.gmail.com", 993, true);
    imapClient.Authenticate("yourgmail@gmail.com", "yourpassword");
    // Access and manage your inbox here
    imapClient.Disconnect(true);
}
Imports MailKit.Net.Imap

' Connecting and authenticating to Gmail's IMAP server
Using imapClient As New ImapClient()
	imapClient.Connect("imap.gmail.com", 993, True)
	imapClient.Authenticate("yourgmail@gmail.com", "yourpassword")
	' Access and manage your inbox here
	imapClient.Disconnect(True)
End Using
$vbLabelText   $csharpLabel

高級電子郵件處理和構建完整的電子郵件應用

整合MailKit的高級功能

在您設置了用於發送和接收電子郵件的基本功能後,是時候探索其高級功能了。

這些包括處理HTML電子郵件,使用HTML電子郵件模板,附加文件,以及在電子郵件收件箱中實現客戶端排序和搜尋。

using MimeKit;

// Creating a MimeMessage for an HTML email
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Your Name", "your@email.com"));
message.To.Add(new MailboxAddress("", "recipient@email.com"));
message.Subject = "Your Subject Here";

// Build the HTML body
var builder = new BodyBuilder
{
    HtmlBody = @"<html><body><h1>Hello, World!</h1></body></html>"
};

// Set the message body
message.Body = builder.ToMessageBody();
using MimeKit;

// Creating a MimeMessage for an HTML email
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Your Name", "your@email.com"));
message.To.Add(new MailboxAddress("", "recipient@email.com"));
message.Subject = "Your Subject Here";

// Build the HTML body
var builder = new BodyBuilder
{
    HtmlBody = @"<html><body><h1>Hello, World!</h1></body></html>"
};

// Set the message body
message.Body = builder.ToMessageBody();
Imports MimeKit

' Creating a MimeMessage for an HTML email
Private message = New MimeMessage()
message.From.Add(New MailboxAddress("Your Name", "your@email.com"))
message.To.Add(New MailboxAddress("", "recipient@email.com"))
message.Subject = "Your Subject Here"

' Build the HTML body
Dim builder = New BodyBuilder With {.HtmlBody = "<html><body><h1>Hello, World!</h1></body></html>"}

' Set the message body
message.Body = builder.ToMessageBody()
$vbLabelText   $csharpLabel

實現HTML模板

您還可以使用HTML模板作為電子郵件內容,允許建立更動態和視覺上吸引人的電子郵件。 這些模板可以從外部文件或嵌入式資源中載入,提供靈活的電子郵件內容管理方式。

構建完整的電子郵件應用

在基本框架完成後,接下來的步驟將是使用MailKit構建完整的電子郵件應用。 這包括:

  • 建立使用者介面:開發一個對使用者友好的電子郵件客戶端介面,讓使用者可以輕鬆地撰寫、發送、接收和閱讀電子郵件。
  • 搭載MailKit特性:將MailKit的各種功能整合到您的應用中,如SMTP和IMAP伺服器,不同內容型別支持,及電子郵件組織功能。
  • 使用者互動和反饋:實現使用者互動功能,如發送電子郵件的按鈕、查看收件箱資料夾,以及將電子郵件轉換為PDF。 提供反饋並處理例外,以確保流暢的使用者體驗。
  • 測試和部署:徹底測試您的電子郵件應用,以確保所有功能按預期運作。 部署應用以便使用者可以在其裝置上安裝和使用。

如何使用MailKit和IronPDF

IronPDF是一個輕量級.NET PDF程式庫,專為網頁開發人員設計。 它可以輕鬆地讀取、寫入和操作PDF文件,能夠將各種文件型別轉換為PDF內容,且您可以在.NET專案中使用它,無論是桌面還是網頁應用。 最好的部分是 - 您可以在開發環境中免費試用。

您可以一起使用MailKit和IronPDF進行業界領先的電子郵件到PDF轉換。 這是一個基本的實施:

using IronPdf;

// Render an HTML string as a PDF
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hey, Chandler!</h1></body></html>");

// Save the PDF document
pdf.SaveAs("EmailContent.pdf");
using IronPdf;

// Render an HTML string as a PDF
var renderer = new IronPdf.ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hey, Chandler!</h1></body></html>");

// Save the PDF document
pdf.SaveAs("EmailContent.pdf");
Imports IronPdf

' Render an HTML string as a PDF
Private renderer = New IronPdf.ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hey, Chandler!</h1></body></html>")

' Save the PDF document
pdf.SaveAs("EmailContent.pdf")
$vbLabelText   $csharpLabel

IronPDF非常容易使用,而安裝起來則更簡單。 您可以用以下幾種方式做到:

方法1:NuGet套件管理器控制台

在Visual Studio的解決方案總覽中,右鍵單擊參考,然後點擊管理NuGet套件。 點擊瀏覽,搜尋'IronPDF'並安裝最新版本。 如果您看到這個,說明它已經運作:

Mailkit Csharp Guide 1 related to 方法1:NuGet套件管理器控制台

您也可以進入工具 -> NuGet套件管理器 -> 套件管理器控制台,在套件管理器標籤中輸入以下行:

Install-Package IronPdf

最後,您可以直接從IronPDF在NuGet上的頁面獲取IronPDF。 從右側選單中選擇下載套件選項,雙擊您的下載以自動安裝,然後重新載入解決方案以在您的專案中開始使用它。

不行嗎? 您可以在我們的進階NuGet安裝說明頁找到平台特定的說明。

方法2:使用DLL文件

您還可以直接從我們這裡獲取IronPDF DLL文件,並手動新增到Visual Studio。 如需Windows、MacOS和Linux DLL套件的完整說明和連接,請查看我們專門的IronPDF安裝指南

結論

通過結合MailKit和IronPDF,您可以建立一個多功能的電子郵件客戶端,能處理各類電子郵件相關任務,包括將電子郵件轉換為PDF。 這個應用不僅用作一個強大的電子郵件通信工具,還展示了這些程式庫在真實情況中的實際應用。

準備好上手IronPDF了嗎? 您可以從我們的IronPDF 30天免費試用開始。 在開發用途中完全免費使用,因此您可以真正檢視它的效能。 如果您喜歡所看到的,IronPDF價格僅從$999開始。 如需更多節省,請查看Iron Software Suite Licensing Options,您可以以兩個的價格獲得所有九個Iron Software工具。 編碼愉快!

Mailkit Csharp Guide 2 related to 結論

常見問題

我如何在C#中使用MailKit發送電子郵件?

要使用MailKit在C#中發送電子郵件,您需要建立一個MimeMessage物件,使用伺服器詳細資訊配置SMTP客戶端,然後使用SmtpClient.Send方法發送電子郵件。

使用MailKit接收電子郵件的過程是什麼?

使用MailKit接收電子郵件涉及使用ImapClient連接到IMAP伺服器,使用使用者憑據進行身份驗證,並存取郵箱以提取和管理電子郵件。

我可以使用.NET程式庫將電子郵件轉換為PDF嗎?

是的,您可以使用IronPDF通過渲染電子郵件的HTML內容將電子郵件轉換為PDF文件。IronPDF提供了在.NET應用中無縫處理PDF轉換的方法。

在MailKit中使用HTML模板有哪些優勢?

在MailKit中使用HTML模板可以建立動態且視覺上豐富的電子郵件內容,增強使用者參與度。模板可以從文件或資源載入並整合到電子郵件正文中。

如何使用MailKit處理電子郵件中的附件?

MailKit允許使用BodyBuilder類來處理附件,將附件新增到MimeMessage。您可以通過指定文件路徑和MIME型別來附加文件。

可以使用IronPDF進行電子郵件到PDF的轉換嗎?

是的,IronPDF提供了電子郵件到PDF轉換功能,允許開發者將電子郵件內容渲染為PDF。此功能對於歸檔電子郵件或建立可列印版本的電子郵件通訊非常有用。

像IronPDF這樣的.NET PDF程式庫的安裝過程是什麼?

要安裝IronPDF,請使用Visual Studio中的NuGet Package Manager搜索並安裝'IronPDF',或者從網站下載DLL並手動將其新增到您的專案中。

MailKit可以用於電子郵件排序和搜尋嗎?

MailKit支持在收件箱中進行客戶端電子郵件排序和搜尋,允許開發人員使用IMAP功能實現自定義排序標準和高效的搜尋機制。

在.NET應用中結合使用MailKit和IronPDF的好處是什麼?

結合使用MailKit和IronPDF提供了一個強大的工具包,用於管理電子郵件通信和文件處理。此整合允許開發者建立多功能的電子郵件客戶端,可以執行包括電子郵件到PDF轉換的多種任務。

我如何解決MailKit中的SMTP連接問題?

要解決MailKit中的SMTP連接問題,請驗證伺服器詳細資訊,如地址、端口和憑證。確保網路允許SMTP流量,並檢查防火牆設置以尋找可能的阻塞。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

Jacob擁有曼徹斯特大學的土木工程一等榮譽學士學位(BEng),於1998-2001年之間獲得。在1999年於倫敦創辦他的第一家軟體公司並於2005年建立了他的第一批.NET元組件後,他專注於解決Microsoft生態系統中的複雜問題。

他的旗艦IronPDF和Iron Suite .NET程式庫在全球獲得了超過3000萬次NuGet安裝依據,他的基礎程式碼基繼續支援著世界各地開發者使用的工具。擁有25年的商業經驗和41年的程式設計專業知識,他仍專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話