Objective-C
Objective-C
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 Objective-C Downloads
#import <CkoMailMan.h>
#import <CkoEmail.h>
#import <CkoBinData.h>
#import <CkoStringTable.h>
#import <CkoStringBuilder.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoMailMan *mailman = [[CkoMailMan alloc] init];
mailman.SmtpHost = @"smtp.mymailserver.com";
mailman.SmtpPort = [NSNumber numberWithInt:465];
mailman.SmtpSsl = YES;
mailman.SmtpUsername = @"myUsername";
mailman.SmtpPassword = @"myPassword";
// Create a new email object
CkoEmail *email = [[CkoEmail alloc] init];
email.Subject = @"This is a test";
email.Body = @"This is a test";
email.From = @"Senders Name <sender@example.com>";
[email AddTo: @"Subscribers" emailAddress: @"subscribers@example.com"];
CkoBinData *bdMime = [[CkoBinData alloc] init];
[mailman RenderToMimeBd: email renderedMime: bdMime];
// Load a file containing one email address per line.
CkoStringTable *distList = [[CkoStringTable alloc] init];
success = [distList AppendFromFile: [NSNumber numberWithInt: 1000] charset: @"utf-8" path: @"qa_data/distList.txt"];
if (success == NO) {
NSLog(@"%@",distList.LastErrorText);
return;
}
CkoStringBuilder *sbRecipients = [[CkoStringBuilder alloc] init];
int i = 0;
int szDistList = [distList.Count intValue];
int j = 0;
while (i < szDistList) {
// Build a list of comma-separated recipients.
if (j > 0) {
[sbRecipients Append: @","];
}
[sbRecipients Append: [distList StringAt: [NSNumber numberWithInt: 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) || (i == szDistList)) {
success = [mailman SendMimeBd: @"sender@example.com" recipients: [sbRecipients GetAsString] mimeData: bdMime];
if (success != YES) {
NSLog(@"%@",mailman.LastErrorText);
return;
}
j = 0;
[sbRecipients Clear];
}
}
success = [mailman CloseSmtpConnection];
if (success != YES) {
NSLog(@"%@",@"Connection to SMTP server not closed cleanly.");
}
NSLog(@"%@",@"Email sent to distirbution list.");