Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Process Large POP3 MailboxDemonstrates how to read email from a mailbox that may contain a large number of emails (on the order of thousands of emails or more). import com.chilkatsoft.*; public class ChilkatExample { static { try { System.loadLibrary("chilkat"); } catch (UnsatisfiedLinkError e) { System.err.println("Native code library failed to load.\n" + e); System.exit(1); } } public static void main(String argv[]) { // The mailman object is used for receiving (POP3) // and sending (SMTP) email. CkMailMan mailman = new CkMailMan(); // Any string argument automatically begins the 30-day trial. boolean success; success = mailman.UnlockComponent("30-day trial"); if (success != true) { System.out.println("Component unlock failed"); return; } // Set the POP3 server's hostname mailman.put_MailHost("mail.chilkatsoft.com"); // Set the POP3 login/password. mailman.put_PopUsername("myLogin"); mailman.put_PopPassword("myPassword"); // First, get the list of UIDLs for all emails in the mailbox. CkStringArray sa; sa = mailman.GetUidls(); int i; int numEmails; numEmails = (int) sa.get_Count(); // Download the emails in chunks of 10 emails each. int chunkBeginIdx; chunkBeginIdx = (int) 0; int chunkEndIdx; chunkEndIdx = (int) 9; if (chunkEndIdx >= numEmails) { chunkEndIdx = (int) numEmails - 1; } CkStringArray saChunk = new CkStringArray(); while ((chunkEndIdx < (numEmails - 1))) { // Build a chunk of 10 UIDLs. saChunk.Clear(); for (i = chunkBeginIdx; i <= chunkEndIdx; i++) { saChunk.Append(sa.GetString(i)); } // Display the UIDLs in this chunk... String chunkStr; chunkStr = saChunk.saveToText(); System.out.println(chunkStr); System.out.println("----" + "\n"); // Download this chunk of email from the POP3 server. CkEmailBundle bundle; bundle = mailman.FetchMultiple(saChunk); if (bundle == null ) { System.out.println(mailman.lastErrorText()); return; } // Process the bundle... // (your application's processing code goes here...) // Get the next chunk... chunkBeginIdx += (int) 10; if (chunkBeginIdx >= numEmails) { break; } chunkEndIdx += (int) 10; if (chunkEndIdx >= numEmails) { chunkEndIdx = (int) numEmails - 1; } } } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2009 Chilkat Software, Inc. All Rights Reserved.