Outils pour utilisateurs

Outils du site


symfony4:email

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony4:email [2019/10/15 07:50]
marclebrun [Envoi d'un email]
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Email ====== 
- 
-Liens: 
-  * Doc: [[https://​symfony.com/​doc/​current/​email.html]] 
-  * Doc de SwiftMailer:​ [[https://​swiftmailer.symfony.com/​docs/​messages.html]] 
-  * [[https://​codereviewvideos.com/​course/​symfony-4-beginners-tutorial/​video/​send-email-symfony-4]] 
-  * [[https://​kinsta.com/​fr/​base-de-connaissances/​serveur-smtp-gratuit/​|Comment utiliser le serveur SMTP gratuit de Google pour envoyer des emails]] 
- 
-===== Swift Mailer ===== 
- 
-**Swift Mailer** est déjà inclus dans les dépendances du projet : 
- 
-<code json composer.json>​ 
-{ 
-    "​require":​ { 
-        "​symfony/​swiftmailer-bundle":​ "​^3.1",​ 
-    } 
-} 
-</​code>​ 
- 
-Si ce n'est pas le cas, faire ceci : 
- 
-<code bash> 
-composer require symfony/​swiftmailer-bundle 
-</​code>​ 
- 
-===== Configuration ===== 
- 
-La configuration se fait via la variable **MAILER_URL** dans le fichier **.env**. 
- 
-==== Utiliser un SMTP générique ==== 
- 
-Par exemple celui de Skynet, qui ne requiert aucune authentification : 
- 
-<​code>​ 
-MAILER_URL=smtp://​smtp.skynet.be:​25?​encryption=&​auth_mode= 
-</​code>​ 
- 
-==== Utiliser le SMTP de Google ==== 
- 
-Pour que cela fonctionne il faut aller dans les paramètres du compte Gmail, dans la 
-section **Sécurité** et activer **Accès moins sécurisé des applications**. 
- 
-<​code>​ 
-# Remplacer [ADRESSE-GMAIL] par l'​adresse Gmail COMPLÈTE (nom@gmail.com) 
-# Remplacer [MOT-DE-PASSE] par le mot de passe de ce compte Gmail 
- 
-MAILER_URL=smtp://​smtp.gmail.com:​465?​encryption=ssl&​auth_mode=login&​username=[ADRESSE-GMAIL]&​password=[MOT-DE-PASSE] 
-</​code>​ 
- 
-===== Chargement des classes ===== 
- 
-<code php> 
-use \Swift_Mailer;​ 
-use \Swift_Message;​ 
-use \Swift_Attachment;​ 
-</​code>​ 
- 
-===== Envoi d'un email ===== 
- 
-Dans une fonction d'un contrôleur : 
- 
-<code php> 
-public function index(Request $request, \Swift_Mailer $mailer) { 
- 
-    $message = (new \Swift_Message()) 
-        ->​setSubject('​Sujet du message'​) 
-        ->​setFrom(['​envoyeur@mail.com'​ => 'Nom Envoyeur'​]) 
-        ->​setTo('​destinataire_1@mail.com'​) 
-        ->​setBody( 
-            "Texte du message",​ 
-            '​text/​plain'​ 
-        ); 
- 
-    $mailer->​send($message);​ 
- 
-} 
-</​code>​ 
- 
-À partir d'un template **Twig** au format **TXT** : 
- 
-<code php> 
-        ->​setBody( 
-            $this->​renderView( 
-                // templates/​hello/​email.txt.twig 
-                '​hello/​email.txt.twig',​ 
-                ['​name'​ => $name] 
-            ), 
-            '​text/​plain'​ 
-        ) 
-</​code>​ 
- 
-Et un template au format **HTML** : 
- 
-<code php> 
-        ->​setBody( 
-            $this->​renderView( 
-                // templates/​hello/​email.html.twig 
-                '​hello/​email.html.twig',​ 
-                ['​name'​ => $name] 
-            ), 
-            '​text/​html'​ 
-        ) 
-</​code>​ 
- 
-Attacher un fichier au message : 
- 
-<code php> 
-        ->​attach(Swift_Attachment::​fromPath('​my-document.pdf'​)) 
-</​code>​ 
- 
-===== Résultat de l'​envoi ===== 
- 
-Pour constater le succès ou l'​échec de l'​envoi : la méthode **send** retourne 
-le nombre d'​emails envoyés. 
- 
-<code php> 
-if($mailer->​send($message) > 0) { 
-  // L'​email a bien été envoyé 
-} else { 
-  // L'​email n'a pas été envoyé 
-} 
-</​code>​ 
  
symfony4/email.1571125856.txt.gz · Dernière modification: 2019/10/15 07:50 par marclebrun