MFMailComposeViewController fournit un moyen simple de présenter un contrôleur de vue, qui permet d’écrire, de modifier et d’envoyer un e-mail. Il est présenté de manière modale, de sorte que le contexte de l’application ne sera pas laissé.

Astuce : Ce message utilise Swift 4 et iOS 9

Créer et présenter MFMailComposeViewController

C’est très facile. Tout d’abord, vous devez importer le MessageUI cadre:

import MessageUI

Ensuite, il vous suffit de créer une instance de MFMailComposeViewController, définissez quelques paramètres et présentez-le. Le reste est pris en charge par ce contrôleur.

if MFMailComposeViewController.canSendMail() {

     let mailComposeViewController = MFMailComposeViewController()
     mailComposeViewController.mailComposeDelegate = self
     mailComposeViewController.setToRecipients(["abc@abc.abc"])
     mailComposeViewController.setSubject("Subject")
     mailComposeViewController.setMessageBody("Hello!!!", isHTML: false)

     present(mailComposeViewController, animated: true, completion: nil)

}

Le statique canSendMail() méthode de MFMailComposeViewController est appelée pour vérifier si un compte de messagerie est configuré sur l’appareil. Notez que cela n’inclut pas les comptes de messagerie d’applications tierces telles que Gmail ou Outlook.

Il est important de définir le MFMailComposeViewControllerDelegate ainsi que pour gérer le licenciement du contrôleur. Il n’y a qu’une seule méthode à mettre en œuvre :

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

     controller.dismiss(animated: true, completion: nil)

}

Il est appelé lorsque l’utilisateur rejette le contrôleur, soit en envoyant l’e-mail, soit en annulant l’action. Dans tous les cas, vous devez désactiver le contrôleur manuellement.

Définir les destinataires, l’objet et le corps du message sont les paramètres les plus évidents que vous pouvez définir. Cependant, il est également possible de définir des destinataires CC et BCC :

mailComposeViewController.setCcRecipients(["cc@cc.cc"])
mailComposeViewController.setBccRecipients(["bcc@bcc.bcc"])

Il est également possible de définir une pièce jointe :

if let image = UIImage(named: "Test"), let imageData = UIImageJPEGRepresentation(image, 1.0) {

     mailComposeViewController.addAttachmentData(imageData, mimeType: "image/jpeg", fileName: "Image.jpeg")

}

Dans cet exemple, une image appelée Test.jpeg du groupe de ressources est jointe à l’e-mail.

Ouvrir l’application Mail

Il existe également un autre moyen d’envoyer des e-mails à partir d’une application iOS. Au lieu de présenter le MFMailComposeViewControllervous pouvez ouvrir l’application de messagerie :

if let url = URL(string: "mailto:abc@abc.abc") {

     UIApplication.shared.open(url, options: [:], completionHandler: nil)

}

Il est également possible d’utiliser le UIActivityViewController. Cependant, l’utilisateur peut alors choisir parmi différents types de canaux, pas seulement le courrier électronique.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici