MFMailComposeViewController を使うと簡単にアプリ内から簡単にメール送信することができます。HTML メールも送信することが可能ですが、HTML で img タグを使うときには画像ファイルを Base64 エンコードする必要があります。

NSData+Base64

下記サイトの下の方にある NSData+Base64 のコードをダウンロードしてプロジェクトに追加します。
Cocoa with Love: Base64 encoding options on the Mac and iPhone

img タグを入れた HTML メールを送る

HTML メールを送るには以下のようにします。

NSMutableString* emailBody = [[[NSMutableString alloc] initWithString:@""] retain];
// HTML で本文を作成する
[emailBody appendString:@"太字"];

[emailBody appendString:@""];
MFMailComposeViewController* mailvc = [[MFMailComposeViewController alloc] init];
mailvc.mailComposeDelegate = self;
[mailvc setSubject:@"subject"];
[mailvc setToRecipients:[NSArray arrayWithObject:@"hoge@example.com"]];
[mailvc setMessageBody:emailBody isHTML:YES];
[self presentModalViewController:mailvc animated:YES];
[mailvc release];
[emailBody release];

しかし、img タグはタグを入れただけでは画像を本文内に表示させることはできません。img タグを使用する場合は、以下のように画像データを Base64 でエンコードして入れます。

NSString* path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"gif"];
NSData* data = [NSData dataWithContentsOfFile:path];
NSString* base64String = [data base64EncodedString];
[emailBody appendString:[NSString stringWithFormat:@"<img src='data:image/gif;base64,%@'>", base64String]];

関連する投稿