Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Convert HTML Web Page to Email and SendConverts an HTML page at a URL into an email with embedded images and sends it.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATMAILLib2_TLB, CHILKATMHTLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var mailman: TChilkatMailMan2; mht: TChilkatMht; success: Integer; email: CHILKATMAILLib2_TLB.IChilkatEmail2; begin // The mailman object is used for receiving (POP3) // and sending (SMTP) email. mailman := TChilkatMailMan2.Create(Self); // The MHT component can be used to convert an HTML page // from a URL, file, or in-memory HTML into an email // with embedded images and style sheets. mht := TChilkatMht.Create(Self); // Note: This example requires licenses to both "Chilkat Email" and "Chilkat MHT". // Any string argument automatically begins the 30-day trial. success := mailman.UnlockComponent('30-day trial'); if (success <> 1) then begin Memo1.Lines.Add(mailman.LastErrorText); Exit; end; success := mht.UnlockComponent('30-day trial'); if (success <> 1) then begin Memo1.Lines.Add(mht.LastErrorText); Exit; end; // There are two ways of embedding images in emails: with CIDs // and without. When using CIDs, the IMG SRC attributes use // urls that begin with "CID:" and the corresponding image // embedded within the email includes a Content-ID header field. // When not using CIDs, the IMG SRC attribute can have a URL, // path, etc. and the corresponding image embedded within // the email has a matching Content-Location header field. // When testing with GMail, if CIDs are used the email will // be displayed with images blocked (by default) unless // the user allows them to be displayed. Without CIDs, // the images are automatically displayed. // When testing with Eudora, Mozilla Thunderbird, and Outlook Express, // embedded images display correctly with our without CIDs. // When testing with Yahoo! Mail, embedded images display OK. // However, the Yahoo! Mail user has the option of blocking // images. If this is turned on, the CID images will still // display correctly even though images are blocked. Why? // It's because when viewing the email there is no external // HTTP request to fetch an image. Therefore, a spammer // cannot get an indication that you've read the email. // However, if CIDs are not used, the images are blocked by // any Yahoo! Mail user that has image blocking turned on -- // even though the images are embedded. // I haven't tested Hotmail yet... // Regardless, there is no perfect solution. If CIDs are used, // GMail users may block your embedded images, if CIDs are not // used, Yahoo! Mail users may block your embedded images. // I recommend setting using CIDs. This is what Mozilla Thunderbird // does by default, and it's the more clear an unambiguous way // to indicate that images are indeed embedded. mht.UseCids := 1; email := mht.GetEmail('http://www.bonairefishing.com/') As CHILKATMAILLib2_TLB.IChilkatEmail2; if (email = nil ) then begin Memo1.Lines.Add(mht.LastErrorText); Exit; end; email.Subject := 'Test HTML email'; // This example is tested in: // Outlook 2000, Eudora 7, Mozilla Thunderbird 1.5.0.9, Outlook Express 6, GMail, Yahoo Mail email.AddTo('Chilkat Support','support@chilkatsoft.com'); // Note: Chilkat does not regularly check our GMail and Yahoo // email accounts. Please send support email to support@chilkatsoft.com email.AddTo('Chilkat on Yahoo','chilkat_software@yahoo.com'); email.AddTo('Chilkat on GMail','chilkat.support@gmail.com'); email.From := 'chilkat@live.com'; // Send email using smtp.live.com mailman.SmtpHost := 'smtp.live.com'; mailman.SmtpUsername := 'chilkat@live.com'; mailman.SmtpPassword := 'myPassword'; mailman.SmtpPort := 587; mailman.StartTLS := 1; success := mailman.SendEmail(email As CHILKATMAILLib2_TLB.IChilkatEmail2); if (success <> 1) then begin Memo1.Lines.Add(mailman.LastErrorText); Exit; end; success := mailman.CloseSmtpConnection(); if (success <> 1) then begin Memo1.Lines.Add(mailman.LastErrorText); Exit; end; ShowMessage('HTML Email Sent!'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.