VB.NET Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++DelphiFoxProJavaPerlPythonRubySQL ServerVBScript

Delphi Examples

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

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

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

Type Conversion

 

Article: Understanding COM References in Delphi

Load MHT and Send as Email

Load a .MHT file and send it as email.

Download Chilkat Email ActiveX for POP3 / SMTP

Download Chilkat IMAP ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATMAILLib2_TLB,
    CHILKATMIMELib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
mailman: TChilkatMailMan2;
success: Integer;
email: CHILKATMAILLib2_TLB.IChilkatEmail2;
mime: CHILKATMIMELib_TLB.IChilkatMime;
mimePart: CHILKATMIMELib_TLB.IChilkatMime;
n: Integer;
i: Integer;

begin
//  The mailman object is used for sending and receiving email.
mailman := TChilkatMailMan2.Create(Self);

//  Any string argument automatically begins the 30-day trial.
success := mailman.UnlockComponent('30-day trial');
if (success <> 1) then
  begin
    ShowMessage('Component unlock failed');

  end;

//  Set the SMTP server.
mailman.SmtpHost := 'smtp.comcast.net';

//  Create a new email object
email := CoChilkatEmail2.Create();

//  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 := CoChilkatMime.Create();

success := mime.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
  begin
    ShowMessage('Failed to unlock MIME component');

  end;

success := mime.LoadMimeFile('test.mht');
if (success <> 1) then
  begin
    ShowMessage(mime.LastErrorText);

  end;

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

    n := mime.NumParts;

    for i := 0 to n - 1 do
      begin
        mimePart := mime.GetPart(i);
        if (mimePart.IsHtml() = 1) then
          begin
            break;
          end;

      end;

    if (not (mimePart = nil )) then
      begin
        //  Remove these header fields:
        mimePart.SetHeaderField('Content-Disposition','');
        mimePart.SetHeaderField('Content-ID','');
        //  Remove the "name" attribute from the Content-Type header:
        mimePart.Name := '';

      end;
  end;

email.SetFromMimeText(mime.GetMime());

email.Subject := 'This is a test';

email.From := 'Chilkat Support <support@chilkatsoft.com>';
email.AddTo('Chilkat Admin','admin@chilkatsoft.com');

success := mailman.SendEmail(email);
if (success <> 1) then
  begin
    ShowMessage(mailman.LastErrorText);
  end
else
  begin
    ShowMessage('Mail Sent!');
  end;
end;

 

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

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

Mail Component · .NET Email Component · XML Parser