2012-01-26 17 views
2

次のコードで私を助けることができますか? iOSの中で電子メールを送信するために、以下のコードは、良いものですか私はこれよりMFMailComposeViewControllerが mailto:URLを使用して電子メールを送信する

NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"]; 
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"]; 
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]]; 

それはメールを送信するための信頼性の高いコードです

を?:使用する必要がありますか?

+0

リテラル文字列で 'stringWithString:'を使う必要はありません。それはすでに文字列です。 (実際には 'stringWithString:'これを呼び出す理由はほとんどありません。) –

答えて

6

これは、IOSを対象としている場合は3.0+ MFMailCompseViewController

#import <MessageUI/MFMailComposeViewController.h> 
    // .... 

     MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; 
     controller.mailComposeDelegate = self; 
     [controller setSubject:@"My Subject"]; 
     [controller setMessageBody:@"Hello there." isHTML:NO]; 
     if (controller) [self presentModalViewController:controller animated:YES]; 
     [controller release]; 

その後、ユーザーが作業を行い、あなたは時間のデリゲートのコールバックを取得:、提供回答に展開する

- (void)mailComposeController:(MFMailComposeViewController*)controller 
       didFinishWithResult:(MFMailComposeResult)result 
          error:(NSError*)error; 
{ 
     if (result == MFMailComposeResultSent) { 
      NSLog(@"sent"); 
     } 
    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

ありがとうございました。別の質問> ABインターフェイスが表示されているときにアドレス帳から複数の連絡先を一度に選択できますか? – Aldee

2

本当にMFMailComposeViewControllerを使用してください。それはあなたのアプリケーションであなたを維持し、コードをより読みやすくします。その後、

2

を私はmailtoアプローチに1つの利点があると付け加えたいと思います。それは、ユーザーが電子メールを送信できるかどうかを実際に確認する必要はないということです。ユーザーができない場合、デフォルトのAppleメールアプリを使用して電子メールアカウントを設定できる電子メールウィザードが表示されます。

MFMailComposeViewControllerの場合は、ユーザーがcanSendMailメソッドでメールを送信できるかどうかを常に確認し、それに応じて行動します。

私は、mailtoのアプローチでは、単純な方法でデリゲートを設定することができないため、エラー処理をややこしくすることにも注意したいと思います。

関連する問題