Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

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


 

 

 

 

 

 

 

 

Download and Save Email Attachments (POP3)

Downloads emails from a POP3 mailbox and saves all attachments.

Download Chilkat Email ActiveX

<?php

//  The mailman object is used for receiving (POP3)
//  and sending (SMTP) email.
$mailman = new COM("Chilkat.MailMan2");

//  Any string argument automatically begins the 30-day trial.
$success = $mailman->UnlockComponent('30-day trial');
if ($success != true) {
    print 'Component unlock failed' . "\n";
    exit;
}

//  Set the POP3 server's hostname
$mailman->MailHost = 'mail.chilkatsoft.com';

//  Set the POP3 login/password.
$mailman->PopUsername = '***';
$mailman->PopPassword = '***';

//  Copy the all email from the user's POP3 mailbox
//  into a bundle object.  The email remains on the server.
$bundle = $mailman->CopyMail();

if (is_null($bundle)) {
    print $mailman->lastErrorText() . "\n";
    exit;
}

$dirPath = 'c:/myAttachments';

for ($i = 0; $i <= $bundle->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) {
        print $email->lastErrorText() . "\n";
        exit;
    }

    //  The OverwriteExisting property controls whether already-existing files
    //  are automatically overwritten.  By default, it is set to 1 so that existing
    //  files will be overwritten.

    //  Setting OverwriteExisting = 0 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->OverwriteExisting = false;
    $success = $email->SaveAllAttachments($dirPath);
    if ($success != true) {
        print $email->lastErrorText() . "\n";
        exit;
    }

    $n = $email->NumAttachments;

    for ($j = 0; $j <= $n - 1; $j++) {
        //  If the attachment filename was changed to prevent overwriting,
        //  GetAttachmentFilename will return the new filename.
        print $email->getAttachmentFilename($j) . "\n";
    }

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

        print 'Original Filename: ' . $email->getAttachmentFilename($j) . "\n";
        $success = $email->SaveAttachedFile($j,$dirPath);
        if ($success != true) {
            print $email->lastErrorText() . "\n";
            exit;
        }

        //  If OverwriteExisting = 1, 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.
        print 'Saved Filename: ' . $email->getAttachmentFilename($j) . "\n";
    }

}


?>

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

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