9
votes

Comment envoyer un email à un destinataire en arrière-plan dans iOS5?

Dans une application iPhone, je veux envoyer un email à une personne qui a oublié son code d'accès. Je veux envoyer le courrier en arrière-plan (ne peux pas utiliser MfmailCommentViewController pour cela) et l'application ne doit pas être poussée à l'arrière-plan. Y a-t-il un moyen d'y parvenir?


0 commentaires

8 Réponses :


2
votes

Vous ne pouvez pas envoyer SMS / Email sans acceptation de l'utilisateur. Mais il y a beaucoup de services Web sur Internet, qui peuvent envoyer des SMS / email. Je suppose que certaines applications utilisent ces services ou utilisations.


0 commentaires

5
votes

Vous ne pouvez pas utiliser MFMailCommentViewController pour le faire. Aucun API ne vous permettra d'envoyer des courriels ou tout type de message au nom de l'utilisateur sans qu'il ne le voient.

Le seul que je vois consiste à apporter un appel à votre serveur et que le serveur envoie le courrier électronique, quelque chose comme ceci: < / p> xxx


1 commentaires

Cela pourrait être le bon moyen, mais est-ce accepté. J'utilise SKPSMTPMessage, mais parfois, il s'agit de crash en raison de l'envoi d'emails à plusieurs reprises avec un contenu différent.



2
votes

vous peut envoyer un e-mail en arrière-plan (sans utiliser le contrôleur MFMail par défaut). Mais vous avez toujours besoin de l'utilisateur pour remplir le formulaire (ou le contenu que vous souhaitez envoyer un courrier électronique) et faire cliquer sur "Envoyer".

Voici mon message sur la façon de le faire. Il inclut le code et les images.

Verrouillage des champs de MFMailCommentViewController

P.s. Ces travaux et Apple ont approuvé plus de 10 de mes applications utilisant ce code / méthode.


0 commentaires

10
votes

Le meilleur moyen de faire est d'utiliser SKPSMTPMessage. Vous pouvez le télécharger à partir d'ici: https://github.com/JetSeven/skpsmtppMessage est une solution très facile que j'ai utilisée Avant d'utiliser des solutions "Mot de passe oublié" dans les applications iOS. Pour implémenter simplement faire glisser les fichiers téléchargés simplement dans votre application, #import code> le "skpsmtppmessage.h" dans votre classe et implémentez le code suivant:

.h p> xxx PRE>

.M P>

- (void)messageSent:(SKPSMTPMessage *)message {
    NSLog(@"Message Sent");

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Password Reset" message:@"Check your email for your new password." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}

- (void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error {
    NSLog(@"Message Failed With Error(s): %@", [error description]);
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"There was an error reseting your password. Please try again later." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}


7 commentaires

@Jacob: cela peut-il être fait dans iOS8? Apple approuvera-t-il mon application?


@ Mak13 salut. Malheureusement, je suis incapable de confirmer / nier si Apple approuvera une application avec cette fonctionnalité. Je ne crois pas que cela va à l'encontre de leurs termes. Je ne vois aucune raison pour laquelle ils rejeteraient cela, car d'autres applications font des choses similaires à l'aide d'un serveur Web. J'espère que cela vous aidera, assurez-vous de me faire savoir ce qui se passe!


Le code dans ce lien n'a pas été mis à jour pour être conforme à l'arc, je suggère de trouver une autre solution


@ Mak13 Apple a approuvé cette application qui a utilisé la bibliothèque SKPSMTPMESSAGE


@ Kirtimali: Oh c'est génial, thnx. Je vais utiliser cette référence.


@ Mak13 Non, je vous demande Apple approuvé votre application?


Malheureusement, cette méthode bugs



0
votes

En référence au commentaire postageApp ci-dessous Si vous souhaitez envoyer des courriels sans aucun tracas de configuration d'un client SMTP, vous pouvez consulter le wrapper PostageKit pour utiliser le service PostageApp. Vous envoyez des courriels avec quelques lignes de code de manière fiable.

https://github.com/twg/postagekit


0 commentaires

0
votes

Peut-être que vous devriez implémenter un script PHP qui envoie un courrier électronique à l'utilisateur. Dans iOS, vous pouvez utiliser la méthode post-méthode dans NsurlConnection pour appeler le script PHP. Vous pouvez trouver de nombreux scripts sur Google pour envoyer un courrier électronique à l'utilisateur.


0 commentaires

0
votes

Télécharger la bibliothèque SKPSMTP et importer xxx pré>

puis implémentez la méthode d'envoi de courrier en arrière-plan. p> xxx pré>

pour gérer le succès et l'échec Utilisez P>

-(void)messageFailed:(SKPSMTPMessage *)message error:(NSError *)error{
    // open an alert with just an OK button
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error!" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
    [alert show];
    NSLog(@"delegate - error(%d): %@", [error code], [error localizedDescription]);
}


0 commentaires

0
votes

https://github.com/troyz/mailutil

J'ai utilisé la bibliothèque ci-dessus Pour envoyer un mail en arrière-plan, il fonctionne donc. xxx

code SWIFT est ici: xxx


0 commentaires