Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

Download and Save Email Attachments (POP3)

Downloads emails from a POP3 mailbox and saves all attachments.

Download Chilkat Perl Module

use chilkat;

#  The mailman object is used for receiving (POP3)
#  and sending (SMTP) email.
$mailman = new chilkat::CkMailMan();

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

#  Set the POP3 server's hostname
$mailman->put_MailHost("mail.chilkatsoft.com");

#  Set the POP3 login/password.
$mailman->put_PopUsername("***");
$mailman->put_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 ($bundle eq null ) {
    print $mailman->lastErrorText() . "\n";
    exit;
}

$dirPath = "c:/myAttachments";

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

    $n = $email->get_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) . "\r\n";
    }

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

        print "Original Filename: " . $email->getAttachmentFilename($j) . "\r\n";
        $success = $email->SaveAttachedFile($j,$dirPath);
        if ($success != 1) {
            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) . "\r\n";
    }

}


 

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

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