iPhoneで標準のメールアプリでメールを設定している方がほとんどかと思いますが、設定してない場合、modalViewでメール送信画面を立ち上げようとすると落ちるそうです。実際そうなんです。
テスト機で開発をしていたときに気づいたのですが、メールアカウントを設定してない状態では絶対落ちてしまい調べてみたところやはり起稿されてる方がいたので参考にさせて頂きました。
メールが設定されていないとMFMailComposeViewControllerのinitに失敗する - Faith and Brave - C++で遊ぼう
- (void)sendMailProc
//メールが送信できるかチェック。
if ([MFMailComposeViewController canSendMail]) {
MFMailComposeViewController* mailPicker =
[[MFMailComposeViewController alloc] init];
mailPicker.mailComposeDelegate = self;
// 宛先の設定
NSArray *toArray = [[NSArray alloc] initWithObjects:@"mail@hoge.net", nil];
[mailPicker setToRecipients:toArray];
// 表題の設定
[mailPicker setSubject:@"hogeSubject"];
// 画像の添付
CGFloat compressionQuality = 0.7;
NSData *attachData = UIImageJPEGRepresentation(saveImage.image, compressionQuality);
[mailPicker addAttachmentData:attachData
mimeType:@"image/jpeg"
fileName:@"data"];
[self presentModalViewController:mailPicker animated:YES];
}
}
ちょっと話題はそれますが、modalViewでメールアプリを立ち上げてメールを送信しなければいけないのがなんとも面倒ですね。立ち上がることなく、メールが送信できればいいのですが、現状ではそういうものは用意されていないようです。(そりゃそうですねw)
自動でメールを送るには、なんかサーバーでゴニョゴニョするくらいしかできないですね。
簡単なやりかたなどご存知の方はご教授いただけると幸いです。