我想测试一下我在电子邮件发送失败时所做的某些行为, 但是我无法获得MFMailComposeResultFailed错误。即使没有互联网连接,它仍然会发送"电子邮件。怎么办呢?
答案 0 :(得分:1)
这是不可能的,因此这种"错误"代表不会发送。这是有道理的,因为" Mail"负责发送或排队邮件。
来自文档(MFMailComposeViewController
)
使用此界面并不能保证立即发送 相应的电子邮件。用户可以取消创建 消息,如果用户确实选择发送消息,则消息 仅在“邮件”应用程序发件箱中排队。这允许你 即使在用户没有的情况下也会生成电子邮件 网络访问,例如飞机模式。这个界面没有 提供一种验证电子邮件是否实际发送的方法。
您可以在显示MFMailComposeViewController
之前检查互联网连接。这是技术可行但不推荐。如果设备再次连接到互联网,Mail
将自动发送邮件。
但您必须检查设备是否配置为发送邮件:
if ([MFMailComposeViewController canSendMail]){
//show MFMailComposeViewController
}else{
//show AlertView
}
在使用此课程之前,您必须始终检查当前是否有 设备配置为使用canSendMail发送电子邮件 方法。如果用户的设备未设置为发送电子邮件, 您可以通知用户或只是禁用电子邮件发送功能 在你的申请中。如果,您不应尝试使用此接口 canSendMail方法返回NO。