MailReport Constructor


Initializes a new instance of the MailReport class.

[Visual Basic]
Public Sub New()
[C#]
public MailReport();
[C++]
public: MailReport();
[JScript]
public function MailReport();

Example

[Visual Basic, C#, C++/CLI] 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