Sample code for 30+ languages & platforms
Classic ASP

Transition from Email.GetDsnFinalRecipients to Email.GetDsnInfo

Provides instructions for replacing deprecated GetDsnFinalRecipients method calls with GetDsnInfo.

Chilkat Classic ASP Downloads

Classic ASP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0

set email = Server.CreateObject("Chilkat.Email")

' Load a multipart/report DSN email.
success = email.LoadEml("qa_data/eml/dsn_example.eml")
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( email.LastErrorText) & "</pre>"
    Response.End
End If

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

' sa is a Chilkat.StringArray
Set sa = email.GetDsnFinalRecipients()
If (email.LastMethodSuccess = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( email.LastErrorText) & "</pre>"
    Response.End
End If

i = 0
count = sa.Count
Do While i < count
    Response.Write "<pre>" & Server.HTMLEncode( i & ": " & sa.GetString(i)) & "</pre>"
    i = i + 1
Loop
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

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

set json = Server.CreateObject("Chilkat.JsonObject")
success = email.GetDsnInfo(json)
If (success = 0) Then
    Response.Write "<pre>" & Server.HTMLEncode( email.LastErrorText) & "</pre>"
    Response.End
End If

json.EmitCompact = 0
Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

' 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")
Do While i < count
    json.I = i
    recipient = json.StringOf("final-recipient[i]")
    Response.Write "<pre>" & Server.HTMLEncode( i & ": " & recipient) & "</pre>"

    i = i + 1
Loop

' -------------------------------------------------------------------------------------------
' -------------------------------------------------------------------------------------------
' 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--
' 

%>
</body>
</html>