![]() |
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
(Go) 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.
email := Email_Ref.html">chilkat.NewEmail() // Load a multipart/report DSN email. success := email.LoadEml("qa_data/eml/dsn_example.eml") if success == false { fmt.Println(email.LastErrorText()) email.DisposeEmail() return } // ------------------------------------------------------------------------ // The GetDsnFinalRecipients method is deprecated: sa := email.GetDsnFinalRecipients() if email.LastMethodSuccess() == false { fmt.Println(email.LastErrorText()) email.DisposeEmail() return } i := 0 count := sa.Count() for i < count { fmt.Println(i, ": ", *sa.GetString(i)) i = i + 1 } fmt.Println("----") sa.DisposeStringArray() // ------------------------------------------------------------------------ // Do the equivalent using GetDsnInfo. // Your application creates a new, empty JsonObject_Ref.html">JsonObject object which is passed // in the last argument and filled upon success. json := JsonObject_Ref.html">chilkat.NewJsonObject() success = email.GetDsnInfo(json) if success == false { fmt.Println(email.LastErrorText()) email.DisposeEmail() json.DisposeJsonObject() return } json.SetEmitCompact(false) fmt.Println(*json.Emit()) fmt.Println("----") // 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") for i < count { json.SetI(i) recipient := json.StringOf("final-recipient[i]") fmt.Println(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-- // email.DisposeEmail() json.DisposeJsonObject() |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.