DsnRecipientItems Property |
Namespace: MailBee.BounceMailAssembly: MailBee.NET (in MailBee.NET.dll) Version: 12.5.0 build 687 for .NET 4.5
Syntax public StringDictionary Items { get; }
Public ReadOnly Property Items As StringDictionary
Get
Property Value
Type:
StringDictionary
A
StringDictionary object with all the fields in the DSN for the given recipient e-mail address.
Examples
This code sample scans a folder of .EML files and shows their DSN data in different ways.
using System;
using System.IO;
using MailBee.Mime;
using MailBee.BounceMail;
class Sample
{
static void Main(string[] args)
{
DeliveryStatusParser parser = new DeliveryStatusParser(@"C:\Temp\BounceDatabase\all.xml", true);
string[] files = Directory.GetFiles(@"C:\Temp\IncomingMail", "*.eml");
MailMessage msg = new MailMessage();
foreach (string file in files)
{
msg.LoadMessage(file);
Result result = parser.Process(msg);
Console.WriteLine("\r\nProcessing of message with filename: " + file);
if (result == null || result.DsnStructure == null)
{
Console.WriteLine("------------------------------------------------------");
Console.WriteLine("This message doesn't have DSN MIME part.");
Console.WriteLine("------------------------------------------------------");
}
else
{
Console.WriteLine("------------------ DSN part as text ------------------");
Console.WriteLine(result.DsnStructure.ToString());
Console.WriteLine("------------- DSN header as StringDictionary ---------");
foreach (string key in result.DsnStructure.Items.Keys)
{
Console.WriteLine("DSN item: {0} = {1}", key, result.DsnStructure.Items[key]);
}
Console.WriteLine("------------------------------------------------------");
foreach (RecipientStatus res in result.Recipients)
{
if (res.DsnInfo != null)
{
Console.WriteLine("DSN subpart for: {0} e-mail", res.EmailAddress);
Console.WriteLine("---------------- DSN subpart as text -----------------");
Console.WriteLine(res.DsnInfo.ToString());
Console.WriteLine("------------- DSN header as StringDictionary ---------");
foreach (string key in res.DsnInfo.Items.Keys)
{
Console.WriteLine("DSN subpart item: {0} = {1}", key, res.DsnInfo.Items[key]);
}
Console.WriteLine("------------------------------------------------------");
}
}
}
}
}
}
Imports System.IO
Imports Microsoft.VisualBasic
Imports MailBee.Mime
Imports MailBee.BounceMail
Class Sample
Shared Sub Main(ByVal args() As String)
Dim parser As DeliveryStatusParser = New DeliveryStatusParser("C:\Temp\BounceDatabase\all.xml", True)
Dim files() As String = Directory.GetFiles("C:\Temp\IncomingMail", "*.eml")
Dim msg As MailMessage = New MailMessage
For Each file As String In files
msg.LoadMessage(file)
Dim result As Result = parser.Process(msg)
Console.WriteLine(ControlChars.CrLf & "Processing of message with filename: " & file)
If result Is Nothing Or result.DsnStructure Is Nothing Then
Console.WriteLine("------------------------------------------------------")
Console.WriteLine("This message doesn't have DSN MIME part.")
Console.WriteLine("------------------------------------------------------")
Else
Console.WriteLine("------------------ DSN part as text ------------------")
Console.WriteLine(result.DsnStructure.ToString())
Console.WriteLine("------------- DSN header as StringDictionary ---------")
For Each key As String In result.DsnStructure.Items.Keys
Console.WriteLine("Dsn item: {0} = {1}", key, result.DsnStructure.Items(key))
Next
Console.WriteLine("------------------------------------------------------")
For Each res As RecipientStatus In result.Recipients
If Not res.DsnInfo Is Nothing Then
Console.WriteLine("DSN subpart for: {0} e-mail", res.EmailAddress)
Console.WriteLine("---------------- DSN subpart as text -----------------")
Console.WriteLine(res.DsnInfo.ToString())
Console.WriteLine("------------- DSN header as StringDictionary ---------")
For Each key As String In res.DsnInfo.Items.Keys
Console.WriteLine("Dsn subpart item: {0} = {1}", key, res.DsnInfo.Items(key))
Next
Console.WriteLine("------------------------------------------------------")
End If
Next
End If
Next
End Sub
End Class
See Also