Sample code for 30+ languages & platforms
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

Objective-C
#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.");