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