如何导致MFMailComposeResultFailed错误

时间:2015-07-13 20:06:24

标签: ios objective-c mfmailcomposeviewcontroller mfmailcomposer

我想测试一下我在电子邮件发送失败时所做的某些行为, 但是我无法获得MFMailComposeResultFailed错误。即使没有互联网连接,它仍然会发送"电子邮件。怎么办呢?

1 个答案:

答案 0 :(得分:1)

这是不可能的,因此这种"错误"代表不会发送。这是有道理的,因为" Mail"负责发送或排队邮件。

来自文档(MFMailComposeViewController

  

使用此界面并不能保证立即发送   相应的电子邮件。用户可以取消创建   消息,如果用户确实选择发送消息,则消息   仅在“邮件”应用程序发件箱中排队。这允许你   即使在用户没有的情况下也会生成电子邮件   网络访问,例如飞机模式。这个界面没有   提供一种验证电子邮件是否实际发送的方法。

您可以在显示MFMailComposeViewController之前检查互联网连接。这是技术可行但不推荐。如果设备再次连接到互联网,Mail将自动发送邮件。

但您必须检查设备是否配置为发送邮件:

if ([MFMailComposeViewController canSendMail]){
 //show MFMailComposeViewController
}else{
 //show AlertView
}
  

在使用此课程之前,您必须始终检查当前是否有   设备配置为使用canSendMail发送电子邮件   方法。如果用户的设备未设置为发送电子邮件,   您可以通知用户或只是禁用电子邮件发送功能   在你的申请中。如果,您不应尝试使用此接口   canSendMail方法返回NO。

https://developer.apple.com/library/ios/documentation/MessageUI/Reference/MFMailComposeViewController_class/#//apple_ref/c/tdef/MFMailComposeResult