![]() |
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
(Unicode C++) 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.
#include <CkEmailW.h> #include <CkStringArrayW.h> #include <CkJsonObjectW.h> void ChilkatSample(void) { CkEmailW email; // Load a multipart/report DSN email. bool success = email.LoadEml(L"qa_data/eml/dsn_example.eml"); if (success == false) { wprintf(L"%s\n",email.lastErrorText()); return; } // ------------------------------------------------------------------------ // The GetDsnFinalRecipients method is deprecated: CkStringArrayW *sa = email.GetDsnFinalRecipients(); if (email.get_LastMethodSuccess() == false) { wprintf(L"%s\n",email.lastErrorText()); return; } int i = 0; int count = sa->get_Count(); while (i < count) { wprintf(L"%d: %s\n",i,sa->getString(i)); i = i + 1; } wprintf(L"----\n"); delete 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. CkJsonObjectW json; success = email.GetDsnInfo(json); if (success == false) { wprintf(L"%s\n",email.lastErrorText()); return; } json.put_EmitCompact(false); wprintf(L"%s\n",json.emit()); wprintf(L"----\n"); // 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(L"final-recipient"); while (i < count) { json.put_I(i); const wchar_t *recipient = json.stringOf(L"final-recipient[i]"); wprintf(L"%d: %s\n",i,recipient); i = i + 1; } // ------------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------------- // 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-- // } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.