Perl Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Perl Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SMTP
Socket / SSL
Spider
SFTP
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Load MHT and Send as Email

Load a .MHT file and send it as email.

 Chilkat Perl Module Downloads for Windows, Linux, and MAC OS X

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";
}

 

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