2017-05-10 9 views
0

私は非常に新しいc.iユーザーが送信ボタンをクリックするたびに電子メールを送信しようとしています。ボタンをクリックするたびに、条件が満たされずループから抜けても電子メールは送信されません。目的のCを使用してメールを送信できません。

これはこれは

- (IBAction)sendbutton:(id)sender { 
    if ([MFMailComposeViewController canSendMail]) 
    { 
    NSString *emailTitle = @"Test Email"; 
    // Email Content 
    NSString *messageBody = @"testing "; 
    // To address 
    NSArray *toRecipents = [NSArray arrayWithObject:@"[email protected]"]; 

    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
    mc.mailComposeDelegate = self; 
    [mc setSubject:emailTitle]; 
    [mc setMessageBody:messageBody isHTML:NO]; 
    [mc setToRecipients:toRecipents]; 

    // Present mail view controller on screen 
    [self presentViewController:mc animated:YES completion:NULL]; 
    } 
} 
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { 
    switch (result) 
    { 
     case MFMailComposeResultCancelled: 
      NSLog(@"Mail cancelled"); 
      break; 
     case MFMailComposeResultSaved: 
      NSLog(@"Mail saved"); 
      break; 
     case MFMailComposeResultSent: 
      NSLog(@"Mail sent"); 
      break; 
     case MFMailComposeResultFailed: 
      NSLog(@"Mail sent failure: %@", [error localizedDescription]); 
      break; 
     default: 
      break; 
    } 
    [self dismissViewControllerAnimated:YES completion:NULL]; 
} 

私の.mファイルである

#import <UIKit/UIKit.h> 
#import <MessageUI/MessageUI.h> 
@interface complaintsviewcontroller : UITableViewController<MFMailComposeViewControllerDelegate> 

私の.hファイルで誰もが、私は上記のコードに間違い行われているものを私に提案することができますか?

+0

あなたが受け取った特定のエラーを共有することができます.. – vaibhav

+0

デバイス内のメールがApple Mailアプリで設定されているかどうかを確認してください。 –

+0

私はエラーが発生していません.iブレークポイントを設定し、ボタンをクリックするとチェックします(条件が満たされていない場合はループから抜ける) – user19

答えて

0

チェックする必要がある基準に従って、MFMailComposeViewControllerは、以下の条件を使用してを送信する直前にメールを送信することができます。その後

if ([MFMailComposeViewController canSendMail]){ 
    // configure your email part here 
    // if not checking, this misleads the standards or leads uncertainty further 
} 

あなたがメールを設定していない場合メールがsettings -> mailアカウント、アラートが以下のように表示されます。

enter image description here

最終解決:あなたがのGmail、ヤフーまたは誰とでも、ポップアップ上でちょうどconfigure the mail accountのようなものを持って、もしそうならmailcomposerが代わって電子メールを送信することができるようになります。

+0

私たちの携帯電話にメールアドレスを登録せずにメールを送ることができるかどうか疑問に思っています。 – user19

+0

@ user19いいえ、実際にはappleのiPhoneが誰かにメールを送信しています。誰かに代わって送信されるべきスパムとはなり得ません。そうした場合、アプリが拒否する可能性があります。 – vaibhav

+0

これを行うには、Webサービスを使用して、適切なパラメータを送信し、Appleのネイティブ機能を使用しないでください。 – vaibhav

関連する問題