Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi ActiveX) Send Email to Distribution ListSends the same email to a list of 1000 email addresses in 50 sends where each email has 20 recipients. Note: Chilkat is not intended nor designed for mass emailing. A solution such as this might be used for a corporate emailing to employees, or an emailing to newsletter subscribers.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var mailman: TChilkatMailMan; success: Integer; email: TChilkatEmail; bdMime: TChilkatBinData; distList: TChilkatStringTable; sbRecipients: TChilkatStringBuilder; i: Integer; szDistList: Integer; j: Integer; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. mailman := TChilkatMailMan.Create(Self); mailman.SmtpHost := 'smtp.mymailserver.com'; mailman.SmtpPort := 465; mailman.SmtpSsl := 1; mailman.SmtpUsername := 'myUsername'; mailman.SmtpPassword := 'myPassword'; // Create a new email object email := TChilkatEmail.Create(Self); email.Subject := 'This is a test'; email.Body := 'This is a test'; email.From := 'Senders Name <sender@example.com>'; email.AddTo('Subscribers','subscribers@example.com'); bdMime := TChilkatBinData.Create(Self); mailman.RenderToMimeBd(email.ControlInterface,bdMime.ControlInterface); // Load a file containing one email address per line. distList := TChilkatStringTable.Create(Self); success := distList.AppendFromFile(1000,'utf-8','qa_data/distList.txt'); if (success = 0) then begin Memo1.Lines.Add(distList.LastErrorText); Exit; end; sbRecipients := TChilkatStringBuilder.Create(Self); i := 0; szDistList := distList.Count; j := 0; while i < szDistList do begin // Build a list of comma-separated recipients. if (j > 0) then begin sbRecipients.Append(','); end; sbRecipients.Append(distList.StringAt(i)); i := i + 1; j := j + 1; // If we have 20 recipients, or we have the final recipient in the final chunk, then send. if ((j = 20) or (i = szDistList)) then begin success := mailman.SendMimeBd('sender@example.com',sbRecipients.GetAsString(),bdMime.ControlInterface); if (success <> 1) then begin Memo1.Lines.Add(mailman.LastErrorText); Exit; end; j := 0; sbRecipients.Clear(); end; end; success := mailman.CloseSmtpConnection(); if (success <> 1) then begin Memo1.Lines.Add('Connection to SMTP server not closed cleanly.'); end; Memo1.Lines.Add('Email sent to distirbution list.'); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.