Как отправить электронное письмо через симулятор iOS? - PullRequest
30 голосов
/ 18 марта 2011

Я хочу знать, возможно ли отправить электронное письмо через симулятор iPhone. Я видел учебник для отправки электронной почты через iphone, как показано ниже:

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

Теперь для проверки нужно ли иметь реальное устройство? Какой способ, если я хочу отправить письмо через симулятор iPhone?

Ответы [ 4 ]

32 голосов
/ 18 марта 2011

Вы должны полагаться на iOS, что MFMailComposeResult, который возвращается в mailComposeController:didFinishWithResult:error:, является правильным.Симулятор подделывает этот результат;фактическое письмо не отправляется, хотя в нем указано MFMailComposeResultSent.

В упомянутом руководстве пропущен важный момент : первое, что вы должны сделать перед использованием MFMailComposeViewController, это проверить [MFMailComposeViewController canSendMail].Это вернет NO, если пользователь не настроил почту на своем устройстве.Если вы должны поддерживать версию iOS до 3.0, правильный способ - проверить, существует ли класс MFMailComposeViewController:

Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
if (mailClass != nil)
{
    if ([mailClass canSendMail])
    {
        [self displayComposerSheet];
    }
    else
    {
        [self launchMailAppOnDevice];
    }
}
else
{
    [self launchMailAppOnDevice];
}

Проблема canSendMail может быть проверена только на реальном устройстве.Сбой произойдет, если вы не проверите canSendMail, и у пользователя не настроена учетная запись электронной почты.

4 голосов
/ 31 марта 2014

Согласно обсуждению на яблочном форуме , для тестирования функциональности нам действительно нужно устройство, симулятор не поддерживает эту функцию.

Часть из обсуждения:

sptrakesh Чикаго Re: IOS SIMULATOR

Почтовое приложение 26 марта 2012 г., 7:09 (в ответ на davemac75)

Почтовое приложение недоступно на симуляторе. Тебе понадобится чтобы проверить ваше приложение на устройстве, чтобы проверить эту часть.

4 голосов
/ 18 марта 2011

Да, это необходимо, если вы действительно хотите отправить электронное письмо.

В большинстве случаев вам не нужно беспокоиться, так как письмо будет отправлено приложением Apple, поэтому вам нужно будет только убедиться, что ваше приложение отвечает и запускает почтовый компоновщик. Единственное, что я могу считать проблематичным, - это если вы хотите убедиться, что вложения и изображения отправляются правильно. В этом случае вы можете отправить бета-версию кому-то с iphone и попросить его проверить его для вас.

важный наличие устройства критично для разработки, ваш симулятор не ведет себя точно так же, как устройство. он прощающий, и по моему опыту у меня всегда были проблемы с устройством, которого не было с симулятором.

1 голос
/ 18 марта 2011

Вы можете использовать платформу MessageUI на симуляторе для составления и «отправки» сообщений, но я не верю, что есть способ на самом деле отправить сообщение.Однако когда пользователь нажимает кнопку «Отправить» в представлении составления сообщения, ваш код не играет никакой роли в отправке сообщения.Таким образом, симулятор делает достаточно, чтобы вы могли разработать и протестировать свое приложение.

Что касается необходимости иметь реальное устройство, я бы сказал, что в какой-то момент вам нужно тестировать на одном или нескольких устройствах, независимо от того,какие.Симулятор - отличный инструмент, но после определенного момента он не заменит запуск вашего приложения на реальных вещах.

...