laravel

Envoyer des e-mails dans Laravel en utilisant SMTP

Envoyer des e-mails dans Laravel en utilisant SMTP
L'envoi d'un e-mail est une exigence courante pour toute application Web. Certaines utilisations générales de l'envoi d'e-mails incluent 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 emails du projet Laravel. SMTP, Mailgun, Postmark et Amazon SES sont utilisés dans Laravel pour envoyer des e-mails simples, transactionnels et en masse. Laravel a une bibliothèque d'envoi d'e-mails nommée SwiftMailer pour envoyer un e-mail avec un modèle d'e-mail. Ce tutoriel vous montre comment envoyer un simple e-mail en utilisant SMTP.

Installation et configuration SMTP

Ouvrez le .env à 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 en utilisant le serveur SMTP de Gmail.

MAIL_MAILER=smtp
MAIL_HOST=smtp.Gmail.com
MAIL_PORT=465
MAIL_USERNAME=YOUR_EMAIL_ADDRESS
MAIL_PASSWORD=VOTRE_MOT DE PASSE
MAIL_ENCRYPTION=ssl

***Noter:

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

/var/www/html/laravelpro/vendor/swiftmailer/swiftmailer/
lib/classes/Swift/Transport/StreamBuffer.php

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

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

Envoi d'e-mails via 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 messagerie.

Pas:

Exécutez la commande suivante depuis le terminal pour créer EmailController pour afficher le formulaire de contact et envoyer un e-mail en utilisant la classe de messagerie Laravel.

$ php artisan make:controller EmailController

Exécutez la commande suivante pour créer une classe de courrier nommée envoiEmail. Cela créera la classe sous le Application\Courriel dossier.

$ php artisan make:envoi de mailEmail

Créer un fichier de vue nommé e-mailenvoyer.lame.php avec le code suivant pour afficher le formulaire de contact.




Formulaire de contact












Nous contacter




@if (compte($erreurs) > 0)



    @foreach ($errors->all() as $error)
  • $erreur

  • @endforeach


@fin si
@if ($message = Session::get('success'))


$message

@fin si



csrf_field()


















Ouvert EmailController et modifiez le code avec le code suivant. le Poster façade et envoiEmail les classes de courrier sont importées au début du fichier. Ici le indice() La méthode chargera le fichier de vue dans le navigateur pour afficher le formulaire de contact. Après avoir soumis le formulaire, le envoyer() méthode sera appelée. Cette méthode validera le formulaire en utilisant les règles de validation. le $données tableau est utilisé pour envoyer les valeurs du Nom et un message champs dans le envoiEmail classer. Ensuite, l'e-mail est envoyé en utilisant le Poster façade. Vous devez définir une adresse e-mail valide du destinataire dans le à() fonction avant d'exécuter le code. Si l'e-mail est envoyé avec succès, un message de réussite s'imprimera.

espace de noms App\Http\Controllers ;
utilisez Illuminate\Http\Request ;
utilisez Illuminate\Support\Facades\Mail ;
utilisez App\Mail\sendingEmail ;
la classe EmailController étend le contrôleur

index de fonction()

return view('emailsend');

fonction envoyer (Requête $requête)

$this->validate($request, [
'nom' => 'obligatoire',
'email' => 'requis|email',
'message' => 'obligatoire'
]);
$données = tableau(
'nom' => $request->nom,
'message' => $request->message
);
Mail::to('Receiver Email Address')->send(new sendingEmail($data));
return back()->with('success', 'Merci de nous avoir contactés!');

Ouvrez le envoiEmail class et modifiez le code avec le code suivant. L'objet de l'e-mail est défini à l'intérieur du construire() méthode et la email_template la vue est utilisée pour formater le contenu de l'e-mail, créé à l'étape suivante. Les valeurs transmises par le EmailController sont stockés dans le $e-mail objet et sont passés dans le email_template vue.

espace de noms App\Mail ;
utilisez Illuminate\Bus\Queueable ;
utilisez Illuminate\Contracts\Queue\ShouldQueue ;
utilisez Illuminate\Mail\Mailable ;
utilisez Illuminate\Queue\SerializesModels ;
envoi de classeEmail étend Mailable

utiliser Queueable, SerializesModels;
/**
* Créer une nouvelle instance de message.
*
* @retour nul
*/
e-mails publics ;
fonction publique __construct($emails)

$this->emails = $emails ;

/**
* Construire le message.s
*
* @return $this
*/
fonction publique build()

return $this->subject('Message du visiteur')
->view('email_template')
->with('emails', $this->emails);

Créez le fichier de vue de modèle nommé email_template.lame.php avec le code suivant pour envoyer l'email formaté à l'expéditeur. Les valeurs transmises par le envoiEmail classe sont utilisés dans ce modèle.

Bonjour,
Je suis $emails['nom']


Ma requête porte sur le sujet suivant :


$emails['message'] .


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

Maintenant, ouvrez le la toile.php fichier et ajoutez le code de route suivant pour ouvrir le formulaire de contact et envoyer l'e-mail.

Route::get('/contact', '[email protected]');
Route::post('/sendemail/send', '[email protected]');

Exécutez l'URL suivante depuis le 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 EmailController classer.

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 EmailController classer. Si vous ouvrez l'e-mail, vous obtiendrez le contenu de l'e-mail suivant, généré à l'aide d'un email_template Voir la fiche.

Didacticiel vidéo

Conclusion

Plusieurs moyens existent dans le framework Laravel pour envoyer un email. Le moyen le plus simple et le plus simple d'envoyer des e-mails dans Laravel est illustré dans ce didacticiel. Si vous avez un compte Gmail, vous pouvez facilement envoyer un e-mail en suivant les étapes indiquées dans ce tutoriel. Le serveur SMTP de Gmail est utilisé ici pour envoyer un e-mail, et la tâche d'envoi d'e-mail est testée en exécutant le code à partir du serveur local. Ce didacticiel montre uniquement les tâches d'envoi d'e-mails au format HTML. Vous pouvez également effectuer d'autres tâches, comme une pièce jointe, le nom de l'expéditeur, etc., en utilisant d'autres méthodes de Poster classer.

Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...
Tutoriel OpenTTD
OpenTTD est l'un des jeux de simulation d'entreprise les plus populaires. Dans ce jeu, vous devez créer une merveilleuse entreprise de transport. Cepe...