iOS:如何检测电子邮件是否已成功发送?

时间:2013-08-21 21:49:26

标签: ios cocoa-touch mfmailcomposeviewcontroller

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

 - (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");
    }

}

1 个答案:

答案 0 :(得分:1)

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

MFMailComposeResultCancelled
MFMailComposeResultSaved
MFMailComposeResultSent
MFMailComposeResultFailed

正如rmaddy在评论中所说,你无法100%确定电子邮件实际发送过(它可能会卡在发件箱中)。那么MFMailComposeResultSent表示电子邮件已经发送到Mail应用程序,该应用程序将尽快发送。