我想知道是否可以通过iPhone模拟器发送电子邮件。我见过了 通过iphone发送电子邮件的教程如下:
http://www.edumobile.org/iphone/iphone-programming-tutorials/compose-mail-application-in-iphone/
现在要测试它是否有必要拥有真正的设备?如果我想发送电子邮件,该怎么办? 通过iPhone模拟器?
答案 0 :(得分:32)
您必须依赖iOS,MFMailComposeResult
中传回的mailComposeController:didFinishWithResult:error:
是正确的。模拟器伪造了这个结果;虽然它显示MFMailComposeResultSent
,但没有发送实际邮件。
提到的教程错过了一个重要的观点:在使用MFMailComposeViewController
之前,您应该做的第一件事就是检查[MFMailComposeViewController canSendMail]
。如果用户未在其设备上配置邮件,则返回NO
。如果您必须支持3.0之前的iOS版本,正确的方法是检查类MFMailComposeViewController
是否存在:
Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
if ([mailClass canSendMail])
{
[self displayComposerSheet];
}
else
{
[self launchMailAppOnDevice];
}
}
else
{
[self launchMailAppOnDevice];
}
canSendMail-issue只能在真实设备上测试。如果您不检查canSendMail并且用户没有配置邮件帐户,它将崩溃。
答案 1 :(得分:4)
是的,如果您想要实际发送电子邮件,则有必要。
在大多数情况下,您无需担心,因为邮件将由Apple应用程序发送,因此您只需验证您的应用程序是否正在响应并启动邮件编辑器。我唯一能想到的问题是,如果你想确保正确发送附件和图像。在这种情况下,您可以向使用iphone的人发送测试版,并要求他为您检查。
重要强> 有一个设备批评开发,你的模拟器的行为与设备完全不同。他是一名宽恕者,根据我的经验,我总是遇到不使用模拟器的设备问题。
答案 2 :(得分:4)
根据discussion on apple forum,为了测试我们真正需要设备的功能,模拟器不支持此功能。
讨论的一部分:
sptrakesh 芝加哥回复:IOS SIMULATOR
MAIL APP 2012年3月26日上午7:09(对davemac75的回应)
模拟器上没有邮件应用程序。你会需要 在设备上测试您的应用程序以测试该部分。
答案 3 :(得分:1)
您可以在模拟器上使用MessageUI框架来撰写和“发送”消息,但我不相信有实际发送消息的方法。但是,一旦用户点击消息编写视图中的“发送”按钮,您的代码就不会在发送消息时发挥任何作用。所以模拟器就足够了,你可以开发和测试你的应用程序。
至于是否需要有真正的设备,我会说在某些时候你需要在一个或多个设备上测试,无论如何。模拟器是一个很棒的工具,但在某一点之后它无法替代在真实物体上运行你的应用程序。