2010年

[iPhone] MFMailComposeViewController で画像入りの HTML メールを送る このエントリーを含むはてなブックマーク

iPhone/iPod touch Add comments

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]];

関連する投稿

2 Responses to “[iPhone] MFMailComposeViewController で画像入りの HTML メールを送る”

  1. erguolinge Says:

    メモ 後で読みます RT @syuhari [blog] [iPhone] MFMailComposeViewController で画像入りの HTML メールを送る http://is.gd/dBuMZ

    This comment was originally posted on Twitter

  2. teetai Says:

    初めまして
    iphoneアプリ開発においてhtmlメールの記載をされてあるサイトが少なく、貴ブログへたどり着きました。
    現在、ios5 iphone4s の開発環境でアプリを作成中です。
    htmlメールを送信するボタンを実装したくいろいろと思考錯誤しておりますが、どうしても画像をインラインで表示できません。
    一応、MFMailComposeViewControllerのプレビュー画面までは
    画像はしっかり表示されていますが、送信した後、受信先のメーラーでは画像が抜けてしまいます。
    受診後のメーラーでのソースは以下となってしまいました。

    >

    base64でエンコードはうまくいっているようなんですが
    何かよい知恵はありますでしょうか?

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン