MFC Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

MFC 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

// Needs #include <CkMailMan.h>
// Needs #include <CkEmailBundle.h>
// Needs #include <CkEmail.h>

    CkString strOut;

    //  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) {
        strOut.append("Component unlock failed\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        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 ) {
        strOut.append(mailman.lastErrorText());
        strOut.append("\r\n");
        SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
        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) {
            strOut.append(email->lastErrorText());
            strOut.append("\r\n");
            SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
            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) {
            strOut.append(email->lastErrorText());
            strOut.append("\r\n");
            SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
            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.
            strOut.append(email->getAttachmentFilename(j));
            strOut.append("\r\n");
        }

        //  You may also save individual attachments:
        for (j = 0; j <= n - 1; j++) {

            strOut.append("Original Filename: ");
            strOut.append(email->getAttachmentFilename(j));
            strOut.append("\r\n");
            success = email->SaveAttachedFile(j,dirPath);
            if (success != true) {
                strOut.append(email->lastErrorText());
                strOut.append("\r\n");
                SetDlgItemText(IDC_EDIT1,strOut.getUnicode());
                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.
            strOut.append("Saved Filename: ");
            strOut.append(email->getAttachmentFilename(j));
            strOut.append("\r\n");
        }

        delete email;
    }

    delete bundle;

    SetDlgItemText(IDC_EDIT1,strOut.getUnicode());

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.