Maison  >  Article  >  cadre php  >  Laravel - Envoi d'e-mail

Laravel - Envoi d'e-mail

WBOY
WBOYoriginal
2024-08-27 10:50:20340parcourir

Laravel nutzt die kostenlose, funktionsreiche Bibliothek SwiftMailer zum Versenden von E-Mails. Mit der Bibliotheksfunktion können wir ganz einfach und ohne großen Aufwand E-Mails versenden. Die E-Mail-Vorlagen werden auf die gleiche Weise wie Ansichten geladen, was bedeutet, dass Sie die Blade-Syntax verwenden und Daten in Ihre Vorlagen einfügen können.

Die folgende Tabelle zeigt die Syntax und Attribute der send-Funktion −

Syntax void send(string|array $view, array $data, Closure|string $callback)
Parameter
  • $view(string|array) – Name der Ansicht, die die E-Mail-Nachricht enthält

  • $data(array) – Array von Daten, die an die Ansicht übergeben werden sollen

  • $callback – ein Abschlussrückruf, der eine Nachrichteninstanz empfängt, sodass Sie die Empfänger, den Betreff und andere Aspekte der E-Mail-Nachricht anpassen können

Rückgaben nichts
Beschreibung Sendet E-Mail.

Dans le troisième argument, l'instance de message reçue par fermeture $callback et avec cette instance, nous pouvons également appeler les fonctions suivantes et modifier le message comme indiqué ci-dessous.

  • $message → subject('Bienvenue dans le Point Tutoriels');
  • $message → from('email@example.com', 'M. Exemple');
  • $message → à('email@example.com', 'M. Exemple');

Certaines des méthodes les moins courantes incluent −

  • $message → expéditeur('email@example.com', 'M. Exemple');
  • $message → returnPath('email@example.com');
  • $message → cc('email@example.com', 'M. Exemple');
  • $message → bcc('email@example.com', 'M. Exemple');
  • $message → réponseÀ('email@example.com', 'M. Exemple');
  • $message → priorité(2);

Pour joindre ou intégrer des fichiers, vous pouvez utiliser les méthodes suivantes −

  • $message → attach('path/to/attachment.txt');
  • $message → embed('path/to/attachment.jpg');

Le courrier peut être envoyé au format HTML ou texte. Vous pouvez indiquer le type de courrier que vous souhaitez envoyer dans le premier argument en passant un tableau comme indiqué ci-dessous. Le type par défaut est HTML. Si vous souhaitez envoyer du courrier en texte brut, utilisez la syntaxe suivante.

Syntaxe

Mail::send([‘text’=>’text.view’], $data, $callback);

Dans cette syntaxe, le premier argument prend un tableau. Utilisez text comme nom de clé de la vue comme valeur de la clé.

Exemple

Étape 1 − Nous allons maintenant envoyer un e-mail depuis le compte Gmail et pour cela, vous devez configurer votre compte Gmail dans le fichier d'environnement Laravel - .env. Activez la vérification en 2 étapes dans votre compte Gmail et créez un mot de passe spécifique à l'application, puis modifiez les paramètres .env comme indiqué ci-dessous.

.env

MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = your-gmail-username
MAIL_PASSWORD = your-application-specific-password
MAIL_ENCRYPTION = tls

Étape 2 - Après avoir modifié le fichier .env, exécutez les deux commandes ci-dessous pour vider le cache et redémarrer le serveur Laravel.

php artisan config:cache

Étape 3 - Créez un contrôleur appelé Laravel - Envoi de-mail en exécutant la commande suivante.

php artisan make:controller Laravel - Envoi de-mail --plain

Étape 4 − Après une exécution réussie, vous recevrez le résultat suivant −

Laravel - Envoi de-mail

Étape 5 − Copiez le code suivant dans

app/Http/Controllers/Laravel - Envoi de-mail.php fichier.

app/Http/Controllers/Laravel - Envoi de-mail.php

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class Laravel - Envoi de-mail extends Controller {
   public function basic_email() {
      $data = array('name'=>"Virat Gandhi");
   
      Mail::send(['text'=>'mail'], $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Basic Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Basic Email Sent. Check your inbox.";
   }
   public function html_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel HTML Testing Mail');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "HTML Email Sent. Check your inbox.";
   }
   public function attachment_email() {
      $data = array('name'=>"Virat Gandhi");
      Mail::send('mail', $data, function($message) {
         $message->to('abc@gmail.com', 'Tutorials Point')->subject
            ('Laravel Testing Mail with Attachment');
         $message->attach('C:\laravel-master\laravel\public\uploads\image.png');
         $message->attach('C:\laravel-master\laravel\public\uploads\test.txt');
         $message->from('xyz@gmail.com','Virat Gandhi');
      });
      echo "Email Sent with attachment. Check your inbox.";
   }
}

Étape 6 - Copiez le code suivant dans le fichier resources/views/mail.blade.php.

resources/views/mail.blade.php

<h1>Hi, {{ $name }}</h1>
l<p>Sending Mail from Laravel.</p>

Étape 7 − Ajoutez les lignes suivantes dans app/Http/routes.php.

app/Http/routes.php

Route::get('sendbasicemail','Laravel - Envoi de-mail@basic_email');
Route::get('sendhtmlemail','Laravel - Envoi de-mail@html_email');
Route::get('sendattachmentemail','Laravel - Envoi de-mail@attachment_email');

Étape 8 - Visitez l'URL suivante pour tester le courrier électronique de base.

http://localhost:8000/sendbasicemail

Étape 9 - L'écran de sortie ressemblera à ceci. Vérifiez votre boîte de réception pour voir le résultat de base des e-mails.

Basic Email Sent

Étape 10 - Visitez l'URL suivante pour tester l'e-mail HTML.

http://localhost:8000/sendhtmlemail

Étape 11 - L'écran de sortie ressemblera à ceci. Vérifiez votre boîte de réception pour voir la sortie de l'e-mail HTML.

HTML Email

Étape 12 - Visitez l'URL suivante pour tester l'e-mail HTML avec pièce jointe.

http://localhost:8000/sendattachmentemail

Étape 13 − Vous pouvez voir le résultat suivant

Email Sent

Remarque - Dans le fichier Laravel - Envoi de-mail.php, l'adresse e-mail dans la méthode from doit être l'adresse e-mail à partir de laquelle vous pouvez envoyer une adresse e-mail. Généralement, il doit s'agir de l'adresse e-mail configurée sur votre serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Laravel-InstallationArticle suivant:Laravel-Installation