如何通过iOS模拟器发送电子邮件?

时间:2011-03-18 07:22:05

标签: iphone email message sendmessage

我想知道是否可以通过iPhone模拟器发送电子邮件。我见过了 通过iphone发送电子邮件的教程如下:

http://www.edumobile.org/iphone/iphone-programming-tutorials/compose-mail-application-in-iphone/

现在要测试它是否有必要拥有真正的设备?如果我想发送电子邮件,该怎么办? 通过iPhone模拟器?

4 个答案:

答案 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框架来撰写和“发送”消息,但我不相信有实际发送消息的方法。但是,一旦用户点击消息编写视图中的“发送”按钮,您的代码就不会在发送消息时发挥任何作用。所以模拟器就足够了,你可以开发和测试你的应用程序。

至于是否需要有真正的设备,我会说在某些时候你需要在一个或多个设备上测试,无论如何。模拟器是一个很棒的工具,但在某一点之后它无法替代在真实物体上运行你的应用程序。