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 <C_CkMailMan.h> #include <C_CkEmailBundle.h> #include <C_CkEmail.h> void ChilkatSample(void) { HCkMailMan mailman; BOOL success; HCkEmailBundle bundle; const char * dirPath; long i; HCkEmail email; long n; long j; // The mailman object is used for receiving (POP3) // and sending (SMTP) email. mailman = CkMailMan_Create(); // Any string argument automatically begins the 30-day trial. success = CkMailMan_UnlockComponent(mailman,"30-day trial"); if (success != TRUE) { printf("Component unlock failed\n"); return; } // Set the POP3 server's hostname CkMailMan_putMailHost(mailman,"mail.chilkatsoft.com"); // Set the POP3 login/password. CkMailMan_putPopUsername(mailman,"***"); CkMailMan_putPopPassword(mailman,"***"); // Copy the all email from the user's POP3 mailbox // into a bundle object. The email remains on the server. bundle = CkMailMan_CopyMail(mailman); if (bundle == 0 ) { printf("%s\n",CkMailMan_lastErrorText(mailman)); return; } dirPath = "c:/myAttachments"; for (i = 0; i <= CkEmailBundle_getMessageCount(bundle) - 1; i++) { email = CkEmailBundle_GetEmail(bundle,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 = CkEmail_SaveAllAttachments(email,dirPath); if (success != TRUE) { printf("%s\n",CkEmail_lastErrorText(email)); 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... CkEmail_putOverwriteExisting(email,FALSE); success = CkEmail_SaveAllAttachments(email,dirPath); if (success != TRUE) { printf("%s\n",CkEmail_lastErrorText(email)); return; } n = CkEmail_getNumAttachments(email); 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",CkEmail_getAttachmentFilename(email,j)); } // You may also save individual attachments: for (j = 0; j <= n - 1; j++) { printf("Original Filename: %s\n" ,CkEmail_getAttachmentFilename(email,j)); success = CkEmail_SaveAttachedFile(email,j,dirPath); if (success != TRUE) { printf("%s\n",CkEmail_lastErrorText(email)); 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",CkEmail_getAttachmentFilename(email,j)); } CkEmail_Dispose(email); } CkEmailBundle_Dispose(bundle); CkMailMan_Dispose(mailman); } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.