Je souhaite envoyer un e-mail depuis mon application iPhone. J'ai entendu dire que le SDK iOS n'a pas d'API de messagerie. Je ne veux pas utiliser le code suivant car il quittera mon application:
NSString *url = [NSString stringWithString: @"mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!"];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
Alors, comment puis-je envoyer un e-mail depuis mon application?
ios
iphone
email
cocoa-touch
Khushi
la source
la source
presentModalViewController:animated:
etdismissModalViewControllerAnimated:
ont été marquées comme dépréciée - au lieu des méthodes de remplacement à base de blocspresentViewController:animated:completion:
etdismissViewControllerAnimated:completion:
doit être utilisé.@interface viewController : UIViewController <MFMailComposeViewControllerDelegate>
[self presentModalViewController:controller animated:YES];
remplacer par[self presentViewController:controller animated:YES completion:nil];
et[self dismissModalViewControllerAnimated:YES];
remplacer par[self dismissViewControllerAnimated:YES completion:nil];
MFMailComposeViewController est la voie à suivre après la sortie du logiciel iPhone OS 3.0. Vous pouvez consulter l' exemple de code ou le didacticiel que j'ai écrit .
la source
J'aimerais ajouter quelques éléments ici:
L'utilisation de l'URL mailto ne fonctionnera pas dans le simulateur car mail.app n'est pas installé sur le simulateur. Cela fonctionne cependant sur l'appareil.
La longueur de l'URL mailto est limitée. Si l'URL est supérieure à 4096 caractères, mail.app ne se lancera pas.
Il existe une nouvelle classe dans OS 3.0 qui vous permet d'envoyer un e-mail sans quitter votre application. Voir la classe MFMailComposeViewController.
la source
Si vous souhaitez envoyer des e-mails à partir de votre application, le code ci-dessus est le seul moyen de le faire, sauf si vous codez votre propre client de messagerie (SMTP) dans votre application, ou si un serveur envoie le courrier pour vous.
Par exemple, vous pouvez coder votre application pour invoquer une URL sur votre serveur qui enverrait le courrier pour vous. Ensuite, vous appelez simplement l'URL à partir de votre code.
Notez qu'avec le code ci-dessus, vous ne pouvez rien joindre à l'e-mail, ce que la méthode client SMTP vous permettrait de faire, ainsi que la méthode côté serveur.
la source
Le code ci-dessous est utilisé dans mon application pour envoyer un e-mail avec une pièce jointe ici, les pièces jointes sont une image. Vous pouvez envoyer n'importe quel type de fichier .
ajoutez ceci à votre fichier .h
Ajoutez MessageUI.framework à votre fichier de projet
La méthode déléguée est indiquée ci-dessous
la source
C'est le code qui peut vous aider mais n'oubliez pas d'inclure le message framewark ui et d'inclure la méthode des délégués MFMailComposeViewControllerDelegate
la source
Swift 2.2. Adapté de la réponse d' Esq
Code client:
la source
Pour envoyer un e-mail depuis l'application iPhone, vous devez effectuer la liste de tâches ci-dessous.
Étape 1: importer
#import <MessageUI/MessageUI.h>
dans votre classe de contrôleur où vous souhaitez envoyer un e-mail.Étape 2: ajoutez le délégué à votre contrôleur comme indiqué ci-dessous
Étape 3: Ajoutez la méthode ci-dessous pour envoyer un e-mail.
Étape 4: implémenter MFMailComposeViewController Delegate
la source
Swift 2.0
la source
Voici une version Swift:
La source
la source
J'ai écrit un simple wrapper appelé KRNSendEmail qui simplifie l'envoi d'e-mails à un appel de méthode.
Le KRNSendEmail est bien documenté et ajouté à CocoaPods.
https://github.com/ulian-onua/KRNSendEmail
la source