1

我正在尝试检查是否发送了电子邮件并显示警报让用户知道。
我尝试了下面的委托方法,但遗憾的是,如果用户取消,也会显示警报消息。任何帮助都将受到赞赏和奖励。

 - (void)mailComposeController:(MFMailComposeViewController*)controller
      didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error{
if (error) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:
                                   [NSString stringWithFormat:@"Error %@", [error description]] delegate:self
                                                   cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alert show];
}


     NSLog(@"email sent");
    }

}
4

1 回答 1

2

当调用该函数时,这意味着电子邮件发生了一些事情,因为电子邮件MFMailComposeViewController已完成。要知道实际发生了什么,您必须查看 的值result,它可以是以下任何一种:

MFMailComposeResultCancelled
MFMailComposeResultSaved
MFMailComposeResultSent
MFMailComposeResultFailed

正如 rmaddy 在评论中所说,您不能 100% 确定电子邮件确实已发送(它可能卡在发件箱中)。那么,这MFMailComposeResultSent意味着电子邮件已发送到邮件应用程序,该应用程序将尽快发送。

于 2013-08-21T21:54:58.357 回答