Envoi d’e-mails via le serveur SMTP de Gmail dans Laravel
Voulez-vous utiliser le serveur SMTP de Gmail pour envoyer des e-mails dans Laravel ? Parfois, votre serveur n’envoie pas d’e-mails en raison de ses limitations ou de ses mauvaises configurations. Dans de tels scénarios, vous pouvez utiliser le serveur SMTP pour envoyer des e-mails. Dans cet article, nous expliquons comment envoyer des e-mails à l’aide du serveur SMTP Gmail dans Laravel.
En utilisant le serveur SMTP, vos e-mails ne se retrouveront pas dans le dossier spam. En général, il sera traité comme un véritable e-mail et ira dans la boîte de réception de l’utilisateur.
Un autre avantage de l’utilisation du serveur SMTP est que vous pouvez également envoyer des e-mails à partir de votre serveur local. Il sera utile de tester la fonctionnalité de messagerie sur le serveur local lui-même.
Configuration du serveur SMTP Gmail dans Laravel
Laravel utilise un config/mail.php
fichier pour stocker les détails liés aux fournisseurs de messagerie. Ce fichier contient des paramètres tels que MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION, etc. L’utilisateur doit fournir ces informations qui seront utilisées par Laravel et envoyer vos e-mails.
Pour ajouter ces informations, vous n’avez pas besoin de modifier config/mail.php. Au lieu de cela, vous devez stocker ces détails dans le .env
fichier.
Ouvrez votre .env
fichier qui se trouve dans votre répertoire racine et vous trouverez ci-dessous le code relatif aux paramètres de messagerie.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Modifiez les détails ci-dessus comme suit.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Ici, j’ai défini le pilote comme smtp, l’hôte pour Gmail comme smtp.googlemail.com, le port SMTP pour Gmail comme 465 et la méthode de cryptage sur ssl. Assurez-vous de remplacer les espaces réservés GMAIL_USERNAME, GMAIL_PASSWORD par votre nom d’utilisateur et votre mot de passe Gmail.
Pour utiliser le serveur SMTP de Gmail, vous devez modifier certains paramètres de votre compte Google. Connectez-vous à votre compte Google et cliquez sur « Compte ». Une fois sur la page ‘Compte’, cliquez sur ‘Sécurité’. Faites défiler vers le bas et vous trouverez les paramètres « Accès moins sécurisé aux applications ». Réglez-le sur ON.
Code pour l’envoi d’e-mails dans Laravel
À ce stade, vous avez terminé avec toutes les configurations de base. Maintenant, vous devez écrire un code Laravel qui enverra un e-mail.
Pour ce tutoriel, je vais utiliser une classe ‘Mail’ pour écrire du code. L’utilisateur peut également écrire le code en utilisant Laravel Mailable. Cela ne fera aucune différence. Dans les deux cas, Laravel utilise le serveur SMTP de Gmail en arrière-plan.
Lorsque vous utilisez la classe ‘Mail’, votre code ressemblera à ce qui est écrit ci-dessous.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
Dans le code ci-dessus, j’utilise la vue ’emails.mail’. Cela signifie que vous devez créer un dossier et un fichier au format resources->views->emails->mail.blade.php
.
Votre mail.blade.php
contiendra le code comme suit.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
C’est ça! Maintenant, en arrière-plan, Laravel utilisera automatiquement le serveur SMTP de Gmail et enverra vos e-mails.
Articles Liés
- Test de courrier électronique Laravel : Mailtrap par rapport aux autres options
- Comment enregistrer une requête dans Laravel
- Comment installer et utiliser CKEditor dans Laravel