Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

 

Load MHT and Send as Email

Load a .MHT file and send it as email.

Download Chilkat C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C++ Libraries for VC++ 6.0 / Win32

#include <CkMailMan.h>
#include <CkEmail.h>
#include <CkMime.h>

void ChilkatSample(void)
    {
    //  The mailman object is used for sending and receiving email.
    CkMailMan mailman;

    //  Any string argument automatically begins the 30-day trial.
    bool success;
    success = mailman.UnlockComponent("30-day trial");
    if (success != true) {
        printf("Component unlock failed\n");
        return;
    }

    //  Set the SMTP server.
    mailman.put_SmtpHost("smtp.comcast.net");

    //  Create a new email object
    CkEmail email;

    //  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).

    CkMime mime;

    success = mime.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("Failed to unlock MIME component\n");
        return;
    }

    success = mime.LoadMimeFile("test.mht");
    if (success != true) {
        printf("%s\n",mime.lastErrorText());
        return;
    }

    //  Is this a multipart/related?  If so, find the HTML part,
    //  which should be the 1st sub-part.
    if (mime.IsMultipartRelated() == true) {
        //  Find the HTML part.
        CkMime *mimePart = 0;
        int n;
        int i;
        n = mime.get_NumParts();

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

            delete mimePart;
        }

        if (!(mimePart == 0 )) {
            //  Remove these header fields:
            mimePart->SetHeaderField("Content-Disposition","");
            mimePart->SetHeaderField("Content-ID","");
            //  Remove the "name" attribute from the Content-Type header:
            mimePart->put_Name("");
            delete mimePart;
        }

    }

    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 != true) {
        printf("%s\n",mailman.lastErrorText());
    }
    else {
        printf("Mail Sent!\n");
    }

    }

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

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

Mail Component · .NET Mail Component · XML Parser