MailBee.NET Objects是一款爲建立、發送、接收以及處理電子郵件而設計的健壯、功能豐富的.NET控件。幾行代碼即可爲應用程序添加E-Mail支持,簡單高效。具有「必需」以及獨特的功能,這些控件幫助開發人員簡單快速地將複雜的電子郵件功能添加到他們的應用程序中。服務器
本文主要介紹了電子郵件請求閱讀/發送狀態提示的代碼示例。要查看郵件發送狀態,開發人員應使用DeliveryNotificationOptions類。此類提供如何以及什麼時候將ESMTP傳遞狀態通知(DSN)發送回發送方的屬性和方法。要獲取或設置觸發ESMTP服務器的事件,開發人員應使用NotifyCondition屬性:dom
C# Smtp mailer = new Smtp(); mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always; VB.NET Dim mailer As New Smtp() mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always
若是郵件服務器支持DSN擴展,則開發人員能夠指定觸發ESMTP服務器將發送狀態發回郵件發送方的事件。爲此開發人員應該使用DsnNotifyCondition枚舉。例如,使用默認值,服務器將自行發送通知;若是郵件發送失敗則會觸發通知。有時,當郵件發送失敗時,可使用發送狀態通知返回原始郵件。使用MailBee,開發人員能夠指定郵件發送失敗時哪一個部分(整個郵件或僅標頭)應與發送狀態通知一塊兒發回:設計
C# mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header; VB.NET mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header
開發人員還能夠指定將添加到通知郵件中的特定惟一字符串。它能夠用於將通知郵件與原始郵件進行匹配:code
C# mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d"; VB.NET mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d"
若是服務器不支持DSN,則不會發送狀態通知。可是,在這種狀況下,不會嚮應用程序返回任何錯誤。你能夠手動檢
查服務器是否支持發送狀態通知:事件
C# if (mailer.GetExtension("DSN") != null) { Console.WriteLine("The message will be submitted with DSN support"); } else { Console.WriteLine("The message will be submitted without DSN support"); } VB.NET If mailer.GetExtension("DSN") IsNot Nothing Then Console.WriteLine("The message will be submitted with DSN support") Else Console.WriteLine("The message will be submitted without DSN support") End If
請注意,你應該在Smtp.Connect方法調用後在調用GetExtension(「DSN」)。
請求查看郵件發送狀態的另外一種方法是使用MailMessage.ConfirmReceipt屬性。它容許開發人員獲取或設置應收到發送確認郵件的我的電子郵件地址。
如下代碼設置Return-Receipt-To消息頭:ip
C# // Create new MailMessage object. MailMessage msg = new MailMessage(); msg.LoadMessage(@"C:\Temp\MyMail.eml"); msg.ConfirmReceipt = "jdoe@domain.com"; VB.NET ' Create new MailMessage object. Dim msg As New MailMessage() msg.LoadMessage("C:\Temp\MyMail.eml") msg.ConfirmReceipt = "jdoe@domain.com"
收件人的郵件服務器應該檢查接收到的郵件Return-Receipt-To標題值,並將發送確認郵件發送到該標題中指定的電子郵件地址。所以,收件人的郵件軟件必須支持Return-Receipt-To功能。一些服務器支持Return-Receipt-To和DSN,而其餘服務器只支持其中一個,甚至不支持。你能夠同時使用這兩種方法。
發送狀態信息還沒有確保收件人已閱讀該郵件。要獲取包含電子郵件地址的字符串,請使用MailMessage.ConfirmRead屬性。ci
C# // Create new MailMessage object. MailMessage msg = new MailMessage(); // Load the message from .eml file msg.LoadMessage(@"C:\Temp\MyMail.eml"); // Show the e-mail address of recipient of the read confirmation message. Console.WriteLine("Send confirmation to " + msg.ConfirmRead); VB.NET ' Create new MailMessage object. Dim msg As New MailMessage() ' Load the message from .eml file msg.LoadMessage("C:\Temp\MyMail.eml") ' Show the e-mail address of recipient of the read confirmation message. Console.WriteLine("Send confirmation to " + msg.ConfirmRead)
注意: 收件人使用的郵件客戶端必須支持ConfirmRead功能(該軟件必須支持Disposition-Notification-To標頭)。開發