Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ Delphi FoxPro Java Perl Python Ruby SQL Server VBScript
|
Load MHT and Send as EmailLoad a .MHT file and send it as email.
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.