メールに画像添付する方法

自作アプリで画像を添付したメールを送信したい時があると思います。カメラアプリなどを作っているとそういう場面に遭遇すると思います。
そんな時、3.0以降であればMessageUIを利用して簡単に実現できます。


使い方。まずはヘッダの読み込みとデリゲートの宣言です。
忘れずにMessageUI.frameworkの追加をしておきましょう

#import 
#import 

@interface CameraViewController :UIViewController
         {



次は実際に表示するところです。
ここではUIImageView(imageView_)に表示されている画像を、Jpegで圧縮して送信しようとしています。


CGFloat compressionQuality = 0.7;
NSData *attachData = UIImageJPEGRepresentation(imageView_.image, compressionQuality);
Jpegで圧縮してNSData型に変換しています。compressionQualityが圧縮率です。


あとはmimeタイプ、ファイル名(添付された時の名前)を指定してするだけです。

// Mail送信
MFMailComposeViewController *mailPicker = [[MFMailComposeViewController alloc] init];
mailPicker.mailComposeDelegate = self;
[mailPicker setSubject:@"from"];
CGFloat compressionQuality = 0.7;
NSData *attachData = UIImageJPEGRepresentation(imageView_.image, compressionQuality);
[mailPicker addAttachmentData:attachData
                     mimeType:@"image/jpeg"
                     fileName:@"data"];				
[self presentModalViewController:mailPicker animated:YES];
[mailPicker release];



デリゲートメッセージはこちらです。
送信後にメッセージを出したいときなどはここに記述します。

 - (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{
}