Sample code for 30+ languages & platforms
VB.NET Requires Chilkat v11.0.0+

Transition from Email.GetDsnFinalRecipients to Email.GetDsnInfo

Provides instructions for replacing deprecated GetDsnFinalRecipients method calls with GetDsnInfo.

Chilkat VB.NET Downloads

VB.NET
Dim success As Boolean = False

Dim email As New Chilkat.Email

'  Load a multipart/report DSN email.
success = email.LoadEml("qa_data/eml/dsn_example.eml")
If (success = False) Then
    Debug.WriteLine(email.LastErrorText)
    Exit Sub
End If


'  ------------------------------------------------------------------------
'  The GetDsnFinalRecipients method is deprecated:

Dim sa As Chilkat.StringArray = email.GetDsnFinalRecipients()
If (email.LastMethodSuccess = False) Then
    Debug.WriteLine(email.LastErrorText)
    Exit Sub
End If


Dim i As Integer = 0
Dim count As Integer = sa.Count
While i < count
    Debug.WriteLine(i & ": " & sa.GetString(i))
    i = i + 1
End While
Debug.WriteLine("----")



'  ------------------------------------------------------------------------
'  Do the equivalent using GetDsnInfo.
'  Your application creates a new, empty JsonObject object which is passed 
'  in the last argument and filled upon success.

Dim json As New Chilkat.JsonObject
success = email.GetDsnInfo(json)
If (success = False) Then
    Debug.WriteLine(email.LastErrorText)
    Exit Sub
End If


json.EmitCompact = False
Debug.WriteLine(json.Emit())
Debug.WriteLine("----")

'  The JSON contains the following:

'  {
'    "reporting-mta": "dns; mail.example.com",
'    "received-from-mta": "dns; smtp.example.com",
'    "arrival-date": "Fri, 8 May 2025 14:23:42 -0400",
'    "final-recipient": [
'      "rfc822; alice@example.com",
'      "rfc822; bob@example.com",
'      "rfc822; carol@example.com"
'    ],
'    "action": "failed",
'    "status": "5.1.1",
'    "remote-mta": "dns; smtp.recipientdomain.com",
'    "diagnostic-code": "smtp; 550 5.1.1 User unknown",
'    "last-attempt-date": "Fri, 8 May 2025 14:23:42 -0400",
'    "action": "failed",
'    "status": "5.1.2",
'    "remote-mta": "dns; smtp.recipientdomain.com",
'    "diagnostic-code": "smtp; 550 5.1.2 Host unknown (Domain name not found)",
'    "last-attempt-date": "Fri, 8 May 2025 14:23:42 -0400",
'    "action": "failed",
'    "status": "5.7.1",
'    "remote-mta": "dns; smtp.recipientdomain.com",
'    "diagnostic-code": "smtp; 550 5.7.1 Relay access denied",
'    "last-attempt-date": "Fri, 8 May 2025 14:23:42 -0400"
'  }

'  Iterate over the final-recipients
i = 0
count = json.SizeOfArray("final-recipient")
While i < count
    json.I = i
    Dim recipient As String = json.StringOf("final-recipient[i]")
    Debug.WriteLine(i & ": " & recipient)

    i = i + 1
End While

'  -------------------------------------------------------------------------------------------
'  -------------------------------------------------------------------------------------------
'  This is the contents of the dsn_example.eml used for this example:

'  From: postmaster@example.com
'  To: sender@example.com
'  Subject: Delivery Status Notification (Failure)
'  MIME-Version: 1.0
'  Content-Type: multipart/report; report-type=delivery-status;
'      boundary="boundary-string"
'  
'  --boundary-string
'  Content-Type: text/plain; charset=us-ascii
'  
'  This is an automatically generated Delivery Status Notification.
'  
'  Delivery to the following recipients failed permanently:
'  
'      alice@example.com
'      bob@example.com
'      carol@example.com
'  
'  Technical details of permanent failure:
'  DNS Error: Domain name not found
'  
'  --boundary-string
'  Content-Type: message/delivery-status
'  
'  Reporting-MTA: dns; mail.example.com
'  Received-From-MTA: dns; smtp.example.com
'  Arrival-Date: Fri, 8 May 2025 14:23:42 -0400
'  
'  Final-Recipient: rfc822; alice@example.com
'  Action: failed
'  Status: 5.1.1
'  Remote-MTA: dns; smtp.recipientdomain.com
'  Diagnostic-Code: smtp; 550 5.1.1 User unknown
'  Last-Attempt-Date: Fri, 8 May 2025 14:23:42 -0400
'  
'  Final-Recipient: rfc822; bob@example.com
'  Action: failed
'  Status: 5.1.2
'  Remote-MTA: dns; smtp.recipientdomain.com
'  Diagnostic-Code: smtp; 550 5.1.2 Host unknown (Domain name not found)
'  Last-Attempt-Date: Fri, 8 May 2025 14:23:42 -0400
'  
'  Final-Recipient: rfc822; carol@example.com
'  Action: failed
'  Status: 5.7.1
'  Remote-MTA: dns; smtp.recipientdomain.com
'  Diagnostic-Code: smtp; 550 5.7.1 Relay access denied
'  Last-Attempt-Date: Fri, 8 May 2025 14:23:42 -0400
'  
'  --boundary-string
'  Content-Type: message/rfc822
'  
'  Return-Path: <sender@example.com>
'  Received: from smtp.example.com (smtp.example.com [192.168.1.10])
'      by mail.example.com (Postfix) with ESMTP id 123456789
'      for <alice@example.com>, <bob@example.com>, <carol@example.com>;
'      Fri, 8 May 2025 14:23:42 -0400
'  Message-ID: <001a113d789f$ad34bc30$038e34b0$@example.com>
'  From: Sender Name <sender@example.com>
'  To: alice@example.com, bob@example.com, carol@example.com
'  Subject: Test Message
'  Date: Fri, 8 May 2025 14:20:00 -0400
'  Content-Type: text/plain; charset="us-ascii"
'  
'  This is a test email message sent to multiple recipients.
'  --boundary-string--
'