![]() |
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
(Objective-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.
#import <CkoEmail.h> #import <CkoStringArray.h> #import <CkoJsonObject.h> #import <NSString.h> CkoEmail *email = [[CkoEmail alloc] init]; // Load a multipart/report DSN email. BOOL success = [email LoadEml: @"qa_data/eml/dsn_example.eml"]; if (success == NO) { NSLog(@"%@",email.LastErrorText); return; } // ------------------------------------------------------------------------ // The GetDsnFinalRecipients method is deprecated: CkoStringArray *sa = [email GetDsnFinalRecipients]; if (email.LastMethodSuccess == NO) { NSLog(@"%@",email.LastErrorText); return; } int i = 0; int count = [sa.Count intValue]; while (i < count) { NSLog(@"%d%@%@",i,@": ",[sa GetString: [NSNumber numberWithInt: i]]); i = i + 1; } NSLog(@"%@",@"----"); // ------------------------------------------------------------------------ // Do the equivalent using GetDsnInfo. // Your application creates a new, empty JsonObject object which is passed // in the last argument and filled upon success. CkoJsonObject *json = [[CkoJsonObject alloc] init]; success = [email GetDsnInfo: json]; if (success == NO) { NSLog(@"%@",email.LastErrorText); return; } json.EmitCompact = NO; NSLog(@"%@",[json Emit]); NSLog(@"%@",@"----"); // 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"] intValue]; while (i < count) { json.I = [NSNumber numberWithInt: i]; NSString *recipient = [json StringOf: @"final-recipient[i]"]; NSLog(@"%d%@%@",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.