Gets the error code of the failure delivery report.
[Visual Basic] Public Property ErrCode As String
[C#] public string ErrCode {get; }
[C++] public: __property String^ get_ErrCode();
[JScript] public function get ErrCode() : String;
Property Value
Read Receipt
Delivery Receipt and FailureReport
Remarks
Example
[Visual Basic, C#] The following example demonstrates how to parse the delivery report with EAGetMail POP3 & IMAP4 .NET Component. To get the full samples of EAGetMail, please refer to Samples section.
[VB - Parse Bounced Email and Read Receipt] Imports EAGetMail Public Sub ParseReport(ByVal emlFile As String) Dim oMail As New Mail("TryIt") oMail.Load(emlFile, False) If Not oMail.IsReport Then Console.WriteLine("This is not a delivery report.") Exit Sub End If Dim oReport As MailReport = oMail.GetReport() Select Case (oReport.ReportType) Case DeliveryReportType.DeliveryReceipt Console.WriteLine("This is a delivery receipt!") Case DeliveryReportType.ReadReceipt Console.WriteLine("This is a read receipt!") Case DeliveryReportType.Deleted Console.WriteLine("This is a unread receipt, this email was deleted without read!") Case DeliveryReportType.DelayedReport Console.WriteLine("This is a delayed report, server will retry to send it automatically!") Case Else Console.WriteLine("This is a failure report!") End Select Console.WriteLine("OriginalSender: {0}", oReport.OriginalSender) Console.WriteLine("OriginalRecipient: {0}", oReport.OriginalRecipient) Console.WriteLine("OriginalMessageID: {0}", oReport.OriginalMessageID) If oReport.ReportType = DeliveryReportType.FailureReport Or oReport.ReportType = DeliveryReportType.DelayedReport Then Console.WriteLine("ErrCode: {0}", oReport.ErrCode) Console.WriteLine("ErrDescription: {0}", oReport.ErrDescription) Console.WriteLine("OriginalSubject: {0}", oReport.OriginalSubject) Console.WriteLine("ReportMTA: {0}", oReport.ReportMTA) Console.WriteLine(oReport.OriginalHeaders.ToString()) End If End Sub
[C# - Parse Bounced Email and Read Receipt] using System; using System.Collections; using EAGetMail; public void Parse_Report(string emlFile) { Mail oMail = new Mail("TryIt"); oMail.Load(emlFile, false); if (!oMail.IsReport) { Console.WriteLine("This is not a delivery report."); return; } MailReport oReport = oMail.GetReport(); switch (oReport.ReportType) { case DeliveryReportType.DeliveryReceipt: Console.WriteLine("This is a delivery receipt!"); break; case DeliveryReportType.ReadReceipt: Console.WriteLine("This is a read receipt!"); break; case DeliveryReportType.Deleted: Console.WriteLine("This is a unread receipt, this email was deleted without read!"); break; case DeliveryReportType.DelayedReport: Console.WriteLine("This is a delayed report, server will retry to send it automatically!"); break; default: Console.WriteLine("This is a failure report!"); break; } Console.WriteLine("OriginalSender: {0}", oReport.OriginalSender); Console.WriteLine("OriginalRecipient: {0}", oReport.OriginalRecipient); Console.WriteLine("OriginalMessageID: {0}", oReport.OriginalMessageID); if (oReport.ReportType == DeliveryReportType.FailureReport || oReport.ReportType == DeliveryReportType.DelayedReport) { Console.WriteLine("ErrCode: {0}", oReport.ErrCode); Console.WriteLine("ErrDescription: {0}", oReport.ErrDescription); Console.WriteLine("OriginalSubject: {0}", oReport.OriginalSubject); Console.WriteLine("ReportMTA: {0}", oReport.ReportMTA); Console.WriteLine(oReport.OriginalHeaders.ToString()); } }
[C++/CLI - Parse Bounced Email and Read Receipt] #include "stdafx.h" using namespace System; using namespace System::Text; using namespace System::Collections; using namespace System::IO; using namespace EAGetMail; //add EAGetMail namespace void ParseReport(String^ emlFile) { Mail ^oMail = gcnew Mail("TryIt"); oMail->Load(emlFile, false); if (!oMail->IsReport) { Console::WriteLine("This is not a delivery report."); return; } MailReport ^oReport = oMail->GetReport(); switch (oReport->ReportType) { case DeliveryReportType::DeliveryReceipt: Console::WriteLine("This is a delivery receipt!"); break; case DeliveryReportType::ReadReceipt: Console::WriteLine("This is a read receipt!"); break; case DeliveryReportType::Deleted: Console::WriteLine("This is a unread receipt, this email was deleted without read!"); break; case DeliveryReportType::DelayedReport: Console::WriteLine("This is a delayed report, the server will retry to send it automatically!"); break; default: Console::WriteLine("This is a failure report!"); break; } Console::WriteLine("OriginalSender: {0}", oReport->OriginalSender); Console::WriteLine("OriginalRecipient: {0}", oReport->OriginalRecipient); Console::WriteLine("OriginalMessageID: {0}", oReport->OriginalMessageID); if (oReport->ReportType == DeliveryReportType::FailureReport || oReport->ReportType == DeliveryReportType::DelayedReport) { Console::WriteLine("ErrCode: {0}", oReport->ErrCode); Console::WriteLine("ErrDescription: {0}", oReport->ErrDescription); Console::WriteLine("OriginalSubject: {0}", oReport->OriginalSubject); Console::WriteLine("ReportMTA: {0}", oReport->ReportMTA); Console::WriteLine(oReport->OriginalHeaders->ToString()); } }
See Also
Mail.IsReport Property
Mail.GetReport Method
Online Tutorials
Parse Non-Delivery Report (NDS) in C# - Tutorial
Parse Non-Delivery Report (NDS) in VB.NET - Tutorial
Parse Non-Delivery Report (NDS) in C++/CLI - Tutorial