DsnRecipientItems Property
Gets a StringDictionary collection of the DSN fields.

Namespace: MailBee.BounceMail
Assembly: MailBee.NET (in MailBee.NET.dll) Version: 12.4 build 677 for .NET 4.5
Syntax
public StringDictionary Items { 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.
// To use the code below, import these namespaces at the top of your code.
using System;
using System.IO;
using MailBee.Mime;
using MailBee.BounceMail;

class Sample
{
    static void Main(string[] args)
    {
        // Load the templates database from file(s).
        DeliveryStatusParser parser = new DeliveryStatusParser(@"C:\Temp\BounceDatabase\all.xml", true);
        string[] files = Directory.GetFiles(@"C:\Temp\IncomingMail", "*.eml");
        MailMessage msg = new MailMessage();

        // Process every message in the folder.
        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("------------------------------------------------------");
                    }
                }
            }
        }
    }
}
See Also