Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
MIME
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip


 

 

 

 

 

 

 

 

Download and Save Email Attachments (POP3)

Downloads emails from a POP3 mailbox and saves all attachments.

Download Chilkat C/C++ Libraries for VC++ 9.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

Download Chilkat C/C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0 / Win32

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#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.