Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Download and Save Email Attachments (POP3)Downloads emails from a POP3 mailbox and saves all attachments.
#include <CkMailMan.h> #include <CkEmailBundle.h> #include <CkEmail.h> void ChilkatSample(void) { // The mailman object is used for receiving (POP3) // and sending (SMTP) email. CkMailMan mailman; // Any string argument automatically begins the 30-day trial. bool success; success = mailman.UnlockComponent("30-day trial"); if (success != true) { printf("Component unlock failed\n"); return; } // Set the POP3 server's hostname mailman.put_MailHost("mail.chilkatsoft.com"); // Set the POP3 login/password. mailman.put_PopUsername("***"); mailman.put_PopPassword("***"); CkEmailBundle *bundle = 0; // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. bundle = mailman.CopyMail(); if (bundle == 0 ) { printf("%s\n",mailman.lastErrorText()); return; } const char * dirPath; dirPath = "c:/myAttachments"; long i; CkEmail *email = 0; for (i = 0; i <= bundle->get_MessageCount() - 1; i++) { email = bundle->GetEmail(i); // You may save all the attachments to the specified directory // by calling SaveAllAttachments. // The SaveAllAttachments method will automatically create the directory // if it does not already exist. success = email->SaveAllAttachments(dirPath); if (success != true) { printf("%s\n",email->lastErrorText()); return; } // The OverwriteExisting property controls whether already-existing files // are automatically overwritten. By default, it is set to true so that existing // files will be overwritten. // Setting OverwriteExisting = false will cause the attachment-saving methods to generate // unique filenames if a file with the same name already exists. The actual filename(s) // saved will be present by calling GetAttachmentFilename for each attachment *after* // saving. // For example... email->put_OverwriteExisting(false); success = email->SaveAllAttachments(dirPath); if (success != true) { printf("%s\n",email->lastErrorText()); return; } long n; n = email->get_NumAttachments(); long j; for (j = 0; j <= n - 1; j++) { // If the attachment filename was changed to prevent overwriting, // GetAttachmentFilename will return the new filename. printf("%s\n",email->getAttachmentFilename(j)); } // You may also save individual attachments: for (j = 0; j <= n - 1; j++) { printf("Original Filename: %s\n" ,email->getAttachmentFilename(j)); success = email->SaveAttachedFile(j,dirPath); if (success != true) { printf("%s\n",email->lastErrorText()); return; } // If OverwriteExisting = true, the saved filename will always equal the original filename, // unless there are characters present in the filename that are not allowed by Windows, // such as * ? < > | etc. In those cases the illegal characters are either removed or replaced // with underscore characters to allow the file to be saved. printf("Saved Filename: %s\n",email->getAttachmentFilename(j)); } delete email; } delete bundle; } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.