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


 

 

 

 

 

 

 

 

Scan for Emails with Attachments and Save Attachments to Files

Scan for emails with attachments and save attachments.

Download 32-bit Chilkat IMAP ActiveX (.msi)

Download All 32-bit Chilkat ActiveX Components (.zip)

Download All 64-bit Chilkat ActiveX Components (.zip)

<?php

$imap = new COM("Chilkat.Imap");

//  Anything unlocks the component and begins a fully-functional 30-day trial.
$success = $imap->UnlockComponent('Anything for 30-day trial');
if ($success != true) {
    print $imap->lastErrorText() . "\n";
    exit;
}

//  Connect to an IMAP server.
$success = $imap->Connect('mail.chilkatsoft.com');
if ($success != true) {
    print $imap->lastErrorText() . "\n";
    exit;
}

//  Login
$success = $imap->Login('myLogin','myPassword');
if ($success != true) {
    print $imap->lastErrorText() . "\n";
    exit;
}

//  Select an IMAP mailbox
$success = $imap->SelectMailbox('Inbox');
if ($success != true) {
    print $imap->lastErrorText() . "\n";
    exit;
}

//  We can choose to fetch UIDs or sequence numbers.
$fetchUids = true;

//  Get the message IDs of all the emails in the mailbox
$messageSet = $imap->Search('ALL',$fetchUids);
if (is_null($messageSet)) {
    print $imap->lastErrorText() . "\n";
    exit;
}

//  Fetch the email headers into a bundle object:

$bundle = $imap->FetchHeaders($messageSet);
if (is_null($bundle)) {

    print $imap->lastErrorText() . "\n";
    exit;
}

//  Scan for emails with attachments, and save the attachments
//  to a sub-directory.

for ($i = 0; $i <= $bundle->MessageCount - 1; $i++) {

    $email = $bundle->GetEmail($i);

    //  Does this email have attachments?
    //  Use GetMailNumAttach because the attachments
    //  are not actually in the email object because
    //  we only downloaded headers.
    //  (Had we downloaded the full emails by
    //  calling mailman.FetchBundle, we could look
    //  at the email object's NumAttachments property.)
    $numAttach = $imap->GetMailNumAttach($email);

    if ($numAttach > 0) {
        //  Download the entire email and save the
        //  attachments. (Remember, we
        //  need to download the entire email because
        //  only the headers were previously downloaded.
        //  If the entire emails were downloaded by
        //  calling FetchBundle instead of FetchHeaders,
        //  this would not be necessary.

        //  The ckx-imap-uid header field is added when
        //  headers are downloaded.  This makes it possible
        //  to get the UID from the email object.
        $uidStr = $email->getHeaderField('ckx-imap-uid');
        $uid = $uidStr;

        $fullEmail = $imap->FetchSingle($uid,true);
        if (!(is_null($fullEmail))) {
            $fullEmail->SaveAllAttachments('attachmentsDir');

        }

        for ($j = 0; $j <= $numAttach - 1; $j++) {
            $filename = $imap->getMailAttachFilename($email,$j);
            print $filename . "\n";
        }

    }

}

//  Disconnect from the IMAP server.
$imap->Disconnect();


?>

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

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