![]() |
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) How to Copy IMAP Mail to another IMAP ServerDemonstrates how to copy the entire contents of an IMAP mailbox to another IMAP server. Note: This example requires Chilkat v11.0.0 or greater.
#import <CkoImap.h> #import <CkoStringBuilder.h> BOOL success = NO; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoImap *imapSrc = [[CkoImap alloc] init]; // Connect to our source IMAP server. success = [imapSrc Connect: @"imap.example.com"]; if (success == NO) { NSLog(@"%@",imapSrc.LastErrorText); return; } // Login to the source IMAP server success = [imapSrc Login: @"admin@chilkatsoft.com" password: @"myPassword"]; if (success == NO) { NSLog(@"%@",imapSrc.LastErrorText); return; } CkoImap *imapDest = [[CkoImap alloc] init]; // Connect to our destination IMAP server. success = [imapDest Connect: @"mail.example-code.com"]; if (success == NO) { NSLog(@"%@",imapDest.LastErrorText); return; } // Login to the destination IMAP server success = [imapDest Login: @"myLogin" password: @"myPassword"]; if (success == NO) { NSLog(@"%@",imapDest.LastErrorText); return; } // Select an IMAP mailbox on the source IMAP server success = [imapSrc SelectMailbox: @"Inbox"]; if (success == NO) { NSLog(@"%@",imapSrc.LastErrorText); return; } // After selecting a mailbox, the NumMessages property will // be updated to reflect the total number of emails in the mailbox: NSLog(@"%d",[imapSrc.NumMessages intValue]); // The emails in the mailbox will always have sequence numbers // ranging from 1 to NumMessages. // This example will copy the first 10 messages using sequence numbers CkoStringBuilder *sbMime = [[CkoStringBuilder alloc] init]; int seqNum; for (seqNum = 1; seqNum <= 10; seqNum++) { [sbMime Clear]; success = [imapSrc FetchSingleAsMimeSb: seqNum bUid: NO sbMime: sbMime]; if (success == NO) { NSLog(@"%@",imapSrc.LastErrorText); return; } success = [imapDest AppendMimeWithFlagsSb: @"Inbox" sbMime: sbMime seen: NO flagged: NO answered: NO draft: NO]; if (success == NO) { NSLog(@"%@",imapDest.LastErrorText); return; } } // Disconnect from the IMAP servers. success = [imapSrc Disconnect]; success = [imapDest Disconnect]; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.