![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Transition from Email.GetDsnFinalRecipients to Email.GetDsnInfoProvides instructions for replacing deprecated GetDsnFinalRecipients method calls with GetDsnInfo. Note: This example requires Chilkat v11.0.0 or greater.
LOCAL loEmail LOCAL lnSuccess LOCAL loSa LOCAL i LOCAL lnCount LOCAL loJson LOCAL lcRecipient * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Email') loEmail = CreateObject('Chilkat.Email') * Load a multipart/report DSN email. lnSuccess = loEmail.LoadEml("qa_data/eml/dsn_example.eml") IF (lnSuccess = 0) THEN ? loEmail.LastErrorText RELEASE loEmail CANCEL ENDIF * ------------------------------------------------------------------------ * The GetDsnFinalRecipients method is deprecated: loSa = loEmail.GetDsnFinalRecipients() IF (loEmail.LastMethodSuccess = 0) THEN ? loEmail.LastErrorText RELEASE loEmail CANCEL ENDIF i = 0 lnCount = loSa.Count DO WHILE i < lnCount ? STR(i) + ": " + loSa.GetString(i) i = i + 1 ENDDO ? "----" RELEASE loSa * ------------------------------------------------------------------------ * Do the equivalent using GetDsnInfo. * Your application creates a new, empty JsonObject object which is passed * in the last argument and filled upon success. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') lnSuccess = loEmail.GetDsnInfo(loJson) IF (lnSuccess = 0) THEN ? loEmail.LastErrorText RELEASE loEmail RELEASE loJson CANCEL ENDIF loJson.EmitCompact = 0 ? loJson.Emit() ? "----" * 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 lnCount = loJson.SizeOfArray("final-recipient") DO WHILE i < lnCount loJson.I = i lcRecipient = loJson.StringOf("final-recipient[i]") ? STR(i) + ": " + lcRecipient i = i + 1 ENDDO * ------------------------------------------------------------------------------------------- * ------------------------------------------------------------------------------------------- * 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-- * RELEASE loEmail RELEASE loJson |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.