Dart
Dart
Send Email to Distribution List
See more SMTP Examples
Sends 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.
Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final mailman = CkMailMan();
mailman.smtpHost = 'smtp.mymailserver.com';
mailman.smtpPort = 465;
mailman.smtpSsl = true;
mailman.smtpUsername = 'myUsername';
mailman.smtpPassword = 'myPassword';
// Create a new email object
final email = CkEmail();
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');
final bdMime = CkBinData();
mailman.renderToMimeBd(email, bdMime);
// Load a file containing one email address per line.
final distList = CkStringTable();
try {
distList.appendFromFile(1000, 'utf-8', 'qa_data/distList.txt');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
final sbRecipients = CkStringBuilder();
var i = 0;
final szDistList = distList.count;
var j = 0;
while (i < szDistList) {
// Build a list of comma-separated recipients.
if (j > 0) {
sbRecipients.append(',');
}
sbRecipients.append(distList.stringAt(i));
i++;
j++;
// If we have 20 recipients, or we have the final recipient in the final chunk, then send.
if ((j == 20) || (i == szDistList)) {
try {
mailman.sendMimeBd('sender@example.com', sbRecipients.getAsString(), bdMime);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
j = 0;
sbRecipients.clear();
}
}
try {
mailman.closeSmtpConnection();
} on ChilkatException {
print('Connection to SMTP server not closed cleanly.');
}
print('Email sent to distirbution list.');
}