web-dev-qa-db-fra.com

Comment envoyer un e-mail via le simulateur iOS?

Je veux savoir s'il est possible d'envoyer des e-mails via le simulateur iPhone. J'ai vu le tutoriel pour envoyer un e-mail via iphone comme ci-dessous:

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

Maintenant, pour tester, est-il nécessaire d'avoir un vrai appareil? Comment puis-je envoyer des e-mails via le simulateur iPhone?

30
nehal

Vous devez compter sur l'iOS que le MFMailComposeResult qui est restitué dans mailComposeController:didFinishWithResult:error: est correct. Le simulateur simule ce résultat; aucun courrier réel n'est envoyé bien qu'il indique MFMailComposeResultSent.

Le tutoriel mentionné manque un point important: La première chose à faire avant d'utiliser MFMailComposeViewController est de vérifier [MFMailComposeViewController canSendMail]. Cela renverra NO, si l'utilisateur n'a pas configuré de messagerie sur son appareil. Si vous devez prendre en charge une version iOS antérieure à 3.0, la bonne façon est de vérifier si la classe MFMailComposeViewController existe:

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

Le problème canSendMail ne peut être testé que sur un appareil réel. Il plantera si vous ne cochez pas canSendMail et que l'utilisateur n'a pas de compte de messagerie configuré.

32
Felix

Selon le discussion sur Apple forum , pour tester les fonctionnalités dont nous avons vraiment besoin d'un appareil, le simulateur ne prend pas en charge cette fonctionnalité.

Une partie de la discussion:

sptrakesh Chicago Re: IOS SIMULATEUR

MAIL APP 26 mars 2012 07:09 (en réponse à davemac75)

L'application de messagerie n'est pas disponible sur le simulateur. Vous devrez tester votre application sur un appareil pour tester cette partie.

4
NeverHopeless

Oui, c'est nécessaire si vous souhaitez réellement envoyer l'e-mail.

dans la plupart des cas, vous n'avez pas à vous inquiéter car le courrier sera envoyé par l'application Apple, vous n'aurez donc qu'à vérifier que votre application répond et lance le courrier compositeur. La seule chose que je peux considérer comme problématique est si vous voulez vous assurer que les pièces jointes et les images sont envoyées correctement. Dans ce cas, vous pouvez envoyer une version bêta à quelqu'un avec un iphone et lui demander de le vérifier pour vous.

important avoir un appareil est essentiel au développement, votre simulateur ne se comporte pas exactement comme l'appareil. il est un pardonnant et d'après mon expérience, j'ai toujours eu des problèmes avec l'appareil qui n'étaient pas avec le simulateur.

4
shannoga

Vous pouvez utiliser le cadre MessageUI sur le simulateur pour composer et "envoyer" des messages, mais je ne pense pas qu'il existe un moyen d'envoyer réellement le message. Cependant, une fois que l'utilisateur a cliqué sur le bouton Envoyer dans la vue de composition du message, votre code n'a aucun rôle dans l'envoi du message. Le simulateur en fait donc assez pour que vous puissiez développer et tester votre application.

Quant à savoir s'il est nécessaire d'avoir un véritable appareil, je dirais qu'à un moment donné, vous devez tester sur un ou plusieurs appareils, quoi qu'il arrive. Le simulateur est un excellent outil, mais après un certain point, il ne remplace pas l'exécution de votre application sur la réalité.

1
Caleb