我正在尝试检查电子邮件是否已发送,并显示警告以便用户知道 我尝试了下面的委托方法,但遗憾的是如果用户取消也会显示警告消息。任何帮助都将受到赞赏和奖励。
- (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");
}
}
答案 0 :(得分:1)
所有这一切都意味着,当调用该函数时,电子邮件发生某事,因为MFMailComposeViewController
已完成。要知道实际发生了什么,你必须看看result
的值,它可以是以下任何一个:
MFMailComposeResultCancelled
MFMailComposeResultSaved
MFMailComposeResultSent
MFMailComposeResultFailed
正如rmaddy在评论中所说,你无法100%确定电子邮件实际发送过(它可能会卡在发件箱中)。那么MFMailComposeResultSent
表示电子邮件已经发送到Mail应用程序,该应用程序将尽快发送。