Envoyer des e-mails à Laravel à l'aide de SMTP

Envoyer des e-mails à Laravel à l'aide de SMTP
L'envoi d'un e-mail est une exigence commune pour toute application Web. Certaines utilisations générales de l'envoi d'e-mails comprennent la vérification de l'enregistrement des utilisateurs, l'obtention des commentaires des utilisateurs, la fourniture d'options pour contacter l'administrateur du site, etc. Le framework Laravel contient plusieurs packages pour envoyer des e-mails du projet Laravel. SMTP, Mailgun, Ponders et Amazon SES sont utilisés dans Laravel pour envoyer des e-mails simples, transactionnels et en vrac. Laravel possède une bibliothèque en fin de messagerie nommée SwiftMailer pour envoyer un e-mail avec un modèle de messagerie. Ce tutoriel vous montre comment envoyer un e-mail simple à l'aide de SMTP.

Configuration et configuration SMTP

Ouvrir le .env fichier à partir du dossier racine du projet Laravel et configurez la configuration en fonction de votre compte Gmail. Vous devez activer le «Application moins sécurisée"Option de votre compte Gmail pour envoyer un e-mail à l'aide du serveur SMTP Gmail.

Mail_mailer = smtp
Mail_host = smtp.Gmail.com
Mail_port = 465
Mail_username = your_email_address
Mail_password = votre_password
Mail_encryption = SSL

***Note:

Vous pouvez recevoir l'erreur d'authentification SMTP lors de l'envoi d'e-mails à l'aide du serveur de compte SMTP Gmail. Ouvrir le Streambuffer.php Fichier à partir de l'emplacement suivant.

/ var / www / html / laravelpro / fournisseur / swiftmailer / swiftmailer /
lib / classes / swift / transport / streambuffer.php

Trouver et remplacer la ligne 259 avec la ligne suivante pour authentifier le serveur SMTP Gmail.

$ options ['ssl'] = array ('Verify_peer' => false, 'Verify_peer_name' => false,
'allow_self_signed' => true);

Envoi de courriels à l'aide de SMTP

Effectuez les étapes suivantes pour envoyer un e-mail à l'aide du formulaire de contact en créant un contrôleur, une vue et une classe de courrier.

Pas:

Exécutez la commande suivante à partir du terminal pour créer E-mail Pour afficher le formulaire de contact et envoyer un e-mail à l'aide de la classe de courrier Laravel.

$ PHP Artisan Make: Controller EmailController

Exécutez la commande suivante pour créer une classe de messagerie nommée SendingingEmail. Cela créera la classe sous le App \ Mail dossier.

$ PHP Artisan Make: Mail SendingEmail

Créer un fichier d'affichage nommé e-mail.lame.php avec le code suivant pour afficher le formulaire de contact.




Contactez-nous formulaire












Contactez-nous




@if (count ($ erreurs)> 0)



    @ForEach ($ errors-> all () As $ error)
  • $ error

  • @endforeach


@fin si
@if ($ message = session :: get ('succès'))


$ message

@fin si



csrf_field ()


















Ouvrir E-mail et modifier le code avec le code suivant. Le Poster façade et SendingingEmail Les cours de courrier sont importés au début du fichier. Ici le indice() La méthode chargera le fichier d'affichage dans le navigateur pour afficher le formulaire de contact. Après avoir soumis le formulaire, le envoyer() la méthode sera appelée. Cette méthode validera le formulaire en utilisant les règles de validation. Le $ data le tableau est utilisé pour envoyer les valeurs du nom et message champs dans le SendingingEmail classe. Ensuite, l'e-mail est envoyé en utilisant le Poster façade. Vous devez définir une adresse e-mail valide du récepteur dans le pour() fonction avant d'exécuter le code. Si l'e-mail envoie avec succès, un message de réussite imprimera.

Namespace App \ Http \ Controllers;
Utiliser illuminate \ http \ request;
Utiliser illuminate \ support \ FACADES \ Mail;
Utilisez App \ Mail \ SendingingEmail;
Class EmailController étend le contrôleur

Index de fonction ()

RETOUR Voir («EmailSend»);

Fonction Send (demande $ demande)

$ this-> valider ($ demande, [
'name' => 'requis',
'email' => 'requis | e-mail',
'message' => 'requis'
]));
$ data = array (
'nom' => $ request-> nom,
'message' => $ request-> message
));
Mail :: to ('Adresse e-mail du récepteur') -> Send (new SendingEmail ($ data));
return back () -> avec («succès», merci de nous avoir contactés!');

Ouvrir le SendingingEmail classe et modifiez le code avec le code suivant. Le sujet de messagerie est défini à l'intérieur du construire() méthode et le Email_Template La vue est utilisée pour formater le contenu de l'e-mail, créé à l'étape suivante. Les valeurs passaient du E-mail sont stockés dans le $ e-mail objet et sont passés dans le Email_Template voir.

Namespace App \ Mail;
Utiliser illuminate \ bus \ que la queue;
Utiliser illuminate \ contracts \ file d'attente \ Soupreue;
Utiliser illuminate \ Mail \ Mailable;
Utiliser illuminate \ queue \ serializesModels;
Class SendingEmail étend par la poste

Utilisez la queregue, SerializalizesModels;
/ **
* Créez une nouvelle instance de message.
*
* @return void
* /
public $ e-mail;
Fonction publique __construct ($ e-mails)

$ this-> e-mail = $ e-mail;

/ **
* Construisez le message.s
*
* @return $ ceci
* /
Build de fonction publique ()

retourner $ this-> sujet ('Message du visiteur')
-> voir ('email_template')
-> avec ('e-mails', $ this-> e-mail);

Créer le fichier d'affichage du modèle nommé Email_Template.lame.php avec le code suivant pour envoyer l'e-mail formaté à l'expéditeur. Les valeurs passaient du SendingingEmail les classes sont utilisées dans ce modèle.

Bonjour,
Je suis $ e-mail ['name']


Ma question concerne le sujet suivant:


$ e-mail ['message'].


Il sera utile si vous me donnez bientôt une réponse.Merci.

Maintenant, ouvrez le la toile.php fichier et ajouter le code d'itinéraire suivant pour ouvrir le formulaire de contact et envoyer l'e-mail.

Route :: get ('/ contacter', 'e-mailController @ index');
Route :: Post ('/ SendEmail / Send', 'EmailController @ Send');

Exécutez l'URL suivante à partir du navigateur pour charger le formulaire de contact.

http: // localhost / laravelpro / public / contact

Remplissez le formulaire et cliquez sur le Envoyer le message bouton pour envoyer le contenu du formulaire au envoyer() Méthode de la E-mail classe.

Si l'e-mail est envoyé avec succès, vous obtiendrez le message de réussite, comme indiqué dans l'image suivante.

Maintenant, ouvrez le compte Gmail que vous avez utilisé pour envoyer un e-mail dans le envoyer() Méthode de la E-mail classe. Si vous ouvrez l'e-mail, vous obtiendrez le contenu e-mail suivant, généré en utilisant un Email_Template Voir la fiche.

Didacticiel vidéo

Conclusion

Il existe plusieurs façons dans le framework Laravel pour envoyer un e-mail. Le moyen le plus simple et le plus simple d'envoyer des e-mails dans Laravel est affiché dans ce tutoriel. Si vous avez un compte Gmail, vous pouvez facilement envoyer un e-mail en suivant les étapes affichées dans ce tutoriel. Le serveur GMail SMTP est utilisé ici pour envoyer un e-mail, et la tâche d'envoi de courriel est testée en exécutant le code à partir du serveur local. Ce tutoriel affiche des e-mails formés HTML qui envoient des tâches uniquement. Vous pouvez également effectuer d'autres tâches, comme la pièce jointe de fichiers, le nom de l'expéditeur, etc., en utilisant d'autres méthodes du Poster classe.