![]() |
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
(PowerBuilder) 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.
integer li_rc oleobject loo_Email integer li_Success oleobject loo_Sa integer i integer li_Count oleobject loo_Json string ls_Recipient loo_Email = create oleobject // Use "Chilkat_9_5_0.Email" for versions of Chilkat < 10.0.0 li_rc = loo_Email.ConnectToNewObject("Chilkat.Email") if li_rc < 0 then destroy loo_Email MessageBox("Error","Connecting to COM object failed") return end if // Load a multipart/report DSN email. li_Success = loo_Email.LoadEml("qa_data/eml/dsn_example.eml") if li_Success = 0 then Write-Debug loo_Email.LastErrorText destroy loo_Email return end if // ------------------------------------------------------------------------ // The GetDsnFinalRecipients method is deprecated: loo_Sa = loo_Email.GetDsnFinalRecipients() if loo_Email.LastMethodSuccess = 0 then Write-Debug loo_Email.LastErrorText destroy loo_Email return end if i = 0 li_Count = loo_Sa.Count do while i < li_Count Write-Debug string(i) + ": " + loo_Sa.GetString(i) i = i + 1 loop Write-Debug "----" destroy loo_Sa // ------------------------------------------------------------------------ // Do the equivalent using GetDsnInfo. // Your application creates a new, empty JsonObject object which is passed // in the last argument and filled upon success. loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") li_Success = loo_Email.GetDsnInfo(loo_Json) if li_Success = 0 then Write-Debug loo_Email.LastErrorText destroy loo_Email destroy loo_Json return end if loo_Json.EmitCompact = 0 Write-Debug loo_Json.Emit() Write-Debug "----" // 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 li_Count = loo_Json.SizeOfArray("final-recipient") do while i < li_Count loo_Json.I = i ls_Recipient = loo_Json.StringOf("final-recipient[i]") Write-Debug string(i) + ": " + ls_Recipient 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-- // destroy loo_Email destroy loo_Json |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.