Gets delivery type.
[Visual Basic 6.0] Public Property Get ReportType() As Long
[Visual C++] public: get_ReportType(LONG* pVal);
Property Value
Const FailureReport = 0 'Specifies that the email is a failure delivery report. Const DeliveryReceipt = 1 'Specifies that the email is a delivery success report(delivery receipt). Const ReadReceipt = 2 'Specifies that the email is a read receipt.
Read Receipt
Delivery Receipt and FailureReport
Remarks
Example
[Visual Basic, Visual C++] The following example demonstrates how to parse the delivery report with EAGetMail POP3 & IMAP4 ActiveX Object. To get the full samples of EAGetMail, please refer to Samples section.
[Visual Basic 6.0]
Private Sub ParseReport(emlFile As String)
Const FailureReport = 0
Const DeliveryReceipt = 1
Const ReadReceipt = 2
Dim oMail As New EAGetMailObjLib.Mail
oMail.LicenseCode = "TryIt"
oMail.LoadFile emlFile, False
If Not oMail.IsReport Then
MsgBox "this is not a report"
Exit Sub
End If
Dim oReport As EAGetMailObjLib.MailReport
Set oReport = oMail.GetReport()
//get report type
Select Case oReport.ReportType
Case DeliveryReceipt
MsgBox "This is a deliver receipt"
Case ReadReceipt
MsgBox "This is a read receipt"
Case Else
MsgBox "This is a failure report"
End Select
//get original message information
MsgBox oReport.OriginalSender
MsgBox oReport.OriginalRecipient
MsgBox oReport.OriginalMessageID
If oReport.ReportType = FailureReport Then
MsgBox oReport.ErrCode
MsgBox oReport.ErrDescription
MsgBox oReport.OriginalSubject
MsgBox oReport.ReportMTA
Dim oHeaders As EAGetMailObjLib.HeaderCollection
Set oHeaders = oReport.OriginalHeaders
Dim i, nCount As Integer
nCount = oHeaders.Count
For i = 0 To nCount - 1
Dim oHeader As EAGetMailObjLib.HeaderItem
Set oHeader = oHeaders.Item(i)
MsgBox oHeader.HeaderKey & ": " & oHeader.HeaderValue
Next
End If
End Sub
[VBScript]
Sub ParseReport( emlFile )
Const FailureReport = 0
Const DeliveryReceipt = 1
Const ReadReceipt = 2
Dim oMail
Set oMail = CreateObject("EAGetMailObj.Mail")
oMail.LicenseCode = "TryIt"
oMail.LoadFile emlFile, False
If Not oMail.IsReport Then
MsgBox "this is not a report"
Exit Sub
End If
Dim oReport
Set oReport = oMail.GetReport()
//get report type
Select Case oReport.ReportType
Case DeliveryReceipt
MsgBox "This is a deliver receipt"
Case ReadReceipt
MsgBox "This is a read receipt"
Case Else
MsgBox "This is a failure report"
End Select
//get original message information
MsgBox oReport.OriginalSender
MsgBox oReport.OriginalRecipient
MsgBox oReport.OriginalMessageID
If oReport.ReportType = FailureReport Then
MsgBox oReport.ErrCode
MsgBox oReport.ErrDescription
MsgBox oReport.OriginalSubject
MsgBox oReport.ReportMTA
Dim oHeaders
Set oHeaders = oReport.OriginalHeaders
Dim i, nCount As Integer
nCount = oHeaders.Count
For i = 0 To nCount - 1
Dim oHeader
Set oHeader = oHeaders.Item(i)
MsgBox oHeader.HeaderKey & ": " & oHeader.HeaderValue
Next
End If
End Sub
[Visual C++]
#include "eagetmailobj.tlh"
using namespace EAGetMailObjLib;
void ParseReport( LPCTSTR lpszEmlFile )
{
const int FailureReport = 0;
const int DeliveryReceipt = 1;
const int ReadReceipt = 2;
IMailPtr oMail;
oMail.CreateInstance( "EAGetMailObj.Mail" );
oMail->LicenseCode = _T("TryIt");
oMail->LoadFile( lpszEmlFile, VARIANT_FALSE );
if( oMail->IsReport == VARIANT_FALSE )
{
_tprintf( _T("This is not a report"));
return;
}
//get report type
IMailReportPtr oReport = oMail->GetReport();
switch( oReport->ReportType )
{
case DeliveryReceipt:
_tprintf( _T("This is a delivery receipt\r\n"));
break;
case ReadReceipt:
_tprintf( _T("This is a read receipt\r\n"));
break;
default:
_tprintf( _T("This is a failure delivery report\r\n"));
break;
}
//get original message information
_tprintf( _T("OriginalSender: %s\r\n"), (TCHAR*)oReport->OriginalSender );
_tprintf( _T("OriginalRecipient: %s\r\n"), (TCHAR*)oReport->OriginalRecipient );
_tprintf( _T("OriginalMessageID: %s\r\n"),(TCHAR*)oReport->OriginalMessageID );
if( oReport->ReportType == FailureReport )
{
_tprintf( _T("ErrCode: %s\r\n"), (TCHAR*)oReport->ErrCode);
_tprintf( _T("ErrDescription: %s\r\n") (TCHAR*)oReport->ErrDescription );
_tprintf( _T("OriginalSubject: %s\r\n") (TCHAR*)oReport->OriginalSubject );
_tprintf( _T("ReportMTA: %s\r\n") (TCHAR*)oReport->ReportMTA );
IHeaderCollectionPtr oHeaders;
oHeaders = oReport->OriginalHeaders;
int count = oHeaders->Count;
for( int i = 0; i < count; i++ )
{
IHeaderItemPtr oHeader;
oHeader = oHeaders->Item(i);
::_tprintf( _T("%s: %s\r\n"), (TCHAR*)oHeader->HeaderKey, (TCHAR*)oHeader->HeaderValue );
}
}
}