Objective-C
Objective-C
Send HTML Email with Attachments
See more SMTP Examples
Demonstrates how to send an HTML email with file attachments.Chilkat Objective-C Downloads
#import <CkoMailMan.h>
#import <CkoEmail.h>
#import <NSString.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.my-starttls-mail-server.com";
mailman.SmtpUsername = @"MY-SMTP-USERNAME";
mailman.SmtpPassword = @"MY-SMTP-PASSWORD";
mailman.StartTLS = YES;
mailman.SmtpPort = [NSNumber numberWithInt:587];
// Create a new email object
CkoEmail *email = [[CkoEmail alloc] init];
email.Subject = @"Test SMTP API to Send HTML Email with Attachments";
email.From = @"Joe Programmer <joe@my-starttls-mail-server.com>";
[email AddTo: @"Chilkat Support" emailAddress: @"support@chilkatsoft.com"];
// Add a plain-text alternative body, which will likely never be seen.
// (It is shown if the receiving email client is incapable of displaying HTML email.)
[email AddPlainTextAlternativeBody: @"This is a plain-text alternative body..."];
// Our HTML will include an image, so add the related image here.
NSString *contentIdStarfish = [email AddRelatedFile: @"qa_data/jpg/starfish.jpg"];
if (email.LastMethodSuccess != YES) {
NSLog(@"%@",email.LastErrorText);
return;
}
// The src attribute for the image tag is set to the contentIdStarfish:
CkoStringBuilder *sbHtml = [[CkoStringBuilder alloc] init];
[sbHtml Append: @"<html><body><p>This is an HTML email with an embedded image.</p>"];
[sbHtml Append: @"<p><img src=\"cid:CONTENT_ID_STARFISH\" /></p></body></html>"];
int numReplacements = [[sbHtml Replace: @"CONTENT_ID_STARFISH" replacement: contentIdStarfish] intValue];
[email AddHtmlAlternativeBody: [sbHtml GetAsString]];
// Finally, add some attachments to the email.
// Add a file attachment.
success = [email AddFileAttachment2: @"qa_data/pdf/fishing.pdf" contentType: @"application/pdf"];
if (success != YES) {
NSLog(@"%@",email.LastErrorText);
return;
}
// Add an attachment where the content is contained in a string.
NSString *content = @"This is the content of the 2nd attached file.";
[email AddStringAttachment: @"someText.txt" str: content];
// Send the HTML email.
success = [mailman SendEmail: email];
if (success != YES) {
NSLog(@"%@",mailman.LastErrorText);
return;
}
success = [mailman CloseSmtpConnection];
if (success != YES) {
NSLog(@"%@",@"Connection to SMTP server not closed cleanly.");
}
NSLog(@"%@",@"HTML email with attachments sent!");