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

 

 

 

 

 

 

 

Load MHT and Send as Email

Load a .MHT file and send it as email.

Download Chilkat Perl Module

use chilkat;

#  The mailman object is used for sending and receiving 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 SMTP server.
$mailman->put_SmtpHost("smtp.comcast.net");

#  Create a new email object
$email = new chilkat::CkEmail();

#  MHT is MIME and therefore can be loaded directly
#  into an email object via the email.LoadEml method.
#  However, if the HTML sub-part of the MIME contains
#  header fields such as this:

#  Content-ID: <BalanceSheet>
#  Content-Disposition: inline;
#  	filename="BalanceSheet"
#  Content-Type: text/html;
#  	name="BalanceSheet";
#  	charset="utf-8"

#  Microsoft Outlook will interpret this as an attached HTML file
#  rather than the HTML body of the email.  Interestingly,
#  Mozilla Thunderbird handles it correctly, but Outlook does not.
#  Google's GMail also handles it correctly.  Yahoo Mail doesn't
#  know what to do and displays nothing -- not even the "attachment".

#  Rather than loading the MHT into the email object, we'll
#  first load it into a Chilkat MIME object and check for
#  these headers.  We want the header fields of the HTML sub-part
#  to look like this:

#  Content-Type: text/html;
#  	charset="utf-8"

#  To do so, we'll remove the Content-ID and Content-Disposition
#  header fields, and the "name" attribute from the
#  Content-Type header.

#  Note: Chilkat MIME is a separate product.  This code
#  would require licenses to both Chilkat Email and Chilkat Mime,
#  or alternatively a Chilkat Bundle license (which includes
#  all Chilkat components).

$mime = new chilkat::CkMime();

$success = $mime->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print "Failed to unlock MIME component" . "\n";
    exit;
}

$success = $mime->LoadMimeFile("test.mht");
if ($success != 1) {
    print $mime->lastErrorText() . "\n";
    exit;
}

#  Is this a multipart/related?  If so, find the HTML part,
#  which should be the 1st sub-part.
if ($mime->IsMultipartRelated() == 1) {
    #  Find the HTML part.

    $n = $mime->get_NumParts();

    for ($i = 0; $i <= $n - 1; $i++) {
        $mimePart = $mime->GetPart($i);
        if ($mimePart->IsHtml() == 1) {
            last;
        }

    }

    if (!($mimePart eq null )) {
        #  Remove these header fields:
        $mimePart->SetHeaderField("Content-Disposition","");
        $mimePart->SetHeaderField("Content-ID","");
        #  Remove the "name" attribute from the Content-Type header:
        $mimePart->put_Name("");

    }

}

$email->SetFromMimeText($mime->getMime());

$email->put_Subject("This is a test");

$email->put_From('Chilkat Support <support@chilkatsoft.com>');
$email->AddTo("Chilkat Admin",'admin@chilkatsoft.com');

$success = $mailman->SendEmail($email);
if ($success != 1) {
    print $mailman->lastErrorText() . "\n";
}
else {
    print "Mail Sent!" . "\n";
}

 

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

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