【问题标题】:How to send an email through iOS simulator?如何通过 iOS 模拟器发送电子邮件?
【发布时间】:2011-07-17 23:23:37
【问题描述】:

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

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

现在测试是不是需要真机?如果我想发送电子邮件,该怎么做 通过 iPhone 模拟器?

【问题讨论】:

    标签: iphone email message sendmessage


    【解决方案1】:

    根据discussion on apple forum,要测试我们真正需要的设备的功能,模拟器不支持此功能。

    部分讨论:

    sptrakesh Chicago Re: IOS 模拟器

    MAIL APP 2012 年 3 月 26 日上午 7:09(响应 davemac75)

    邮件应用程序在模拟器上不可用。你会需要 在设备上测试您的应用程序以测试该部分。

    【讨论】:

      【解决方案2】:

      是的,如果您想实际发送电子邮件,则必须这样做。

      在大多数情况下,您无需担心,因为邮件将由 Apple 应用程序发送,因此您只需验证您的应用程序是否正在响应并启动邮件编写器。我唯一认为有问题的是,如果您想确保正确发送附件和图像。在这种情况下,您可以将测试版发送给使用 iphone 的人并让他为您检查。

      重要 拥有设备是开发的关键,您的模拟器与设备的行为不完全相同。他是一个宽恕者,根据我的经验,我总是遇到与模拟器无关的设备问题。

      【讨论】:

      • 对于我的任务,我只需要显示作曲家。但我不能这样做。 MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init]; .此行弹出警报控制器
      【解决方案3】:

      您必须依靠 iOS 来确认 mailComposeController:didFinishWithResult:error: 中返回的 MFMailComposeResult 是正确的。模拟器伪造了这个结果;尽管上面写着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 问题只能在真实设备上进行测试。如果您不检查 canSendMail 并且用户没有配置邮件帐户,它将崩溃。

      【讨论】:

      • 对于我的任务,我只需要显示作曲家。但我不能这样做。 MFMailComposeViewController* composeVC = [[MFMailComposeViewController alloc] init]; .此行弹出警报控制器。
      【解决方案4】:

      您可以使用模拟器上的 MessageUI 框架来编写和“发送”消息,但我不相信有一种方法可以实际发送消息。但是,一旦用户在消息组合视图中点击了“发送”按钮,您的代码在发送消息中就没有任何作用。因此,模拟器的功能足以让您开发和测试您的应用。

      至于是否有必要拥有一台真实的设备,我想说的是,无论如何你都需要在一台或多台设备上进行测试。模拟器是一个很棒的工具,但在一定程度上它不能替代在真实的东西上运行你的应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多