Maison >cadre php >Laravel >Savez-vous comment Laravel envoie un email ?

Savez-vous comment Laravel envoie un email ?

藏色散人
藏色散人avant
2020-10-16 14:16:492246parcourir
Ce qui suit est introduit par

Laravel La section tutoriel vous présentera "Savez-vous comment Laravel a envoyé un e-mail ?" 》, j'espère que cela sera utile aux amis dans le besoin !

Introduction

Dans le chapitre précédent, nous avons préparé un formulaire attentionné pour l'envoi d'e-mails, qui est Vérification parfaite des données, puis dans cet article nous expliquons comment envoyer un e-mail dans Laravel.

L'e-mail est très pratique, merci de ne pas en abuser.

Temps de codage

Laravel intègre la populaire et puissante bibliothèque SwiftMailer, qui encapsule la logique sous-jacente nécessaire pour envoyer des e-mails pour nous, donc nous seulement il faut se concentrer sur la logique d'envoi,

comment préparer le contenu de l'email.

Fichier de configuration Laravel

config/mail.php Paramètres smtp par défaut :

'smtp' => [
    'transport' => 'smtp',
    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
    'port' => env('MAIL_PORT', 587),
    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    'timeout' => null,
    'auth_mode' => null,],

Principalement utilisé pour spécifier le protocole de transmission, l'adresse de l'hôte, le numéro de port, la méthode de cryptage, le nom d'utilisateur et mot de passe, etc.

Pour des raisons à l'étranger, mailgun est utilisé par défaut comme serveur de messagerie, afin de ne pas faire en sorte que les e-mails envoyés par notre propre serveur de messagerie

soient identifiés comme spam et n'affectent pas les processus commerciaux.

Enregistrez un compte avec quota gratuit, qui peut vous fournir le nombre correspondant d'e-mails envoyés chaque mois. Après avoir postulé, vous pouvez voir le code suivant dans le fichier de configuration

app/services.php :

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
    'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),],

Nous déclarons simplement les variables correspondantes dans le fichier .env.

Classe d'envoi de courrier

Centralise la logique d'envoi de courrier Nous devons restituer les données entrantes, puis les envoyer à l'utilisateur par courrier électronique.

Utilisez la commande suivante pour générer la classe de traitement des e-mails :

php artisan make:mail ContactEmail

Le fichier généré se trouve dans

app/Mail/ContactEmail.php, et le contenu initial est le suivant suit :

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ContactEmail extends Mailable
{
    use Queueable, SerializesModels;
    public function __construct()
    {
        //
    }
    public function build()
    {
        return $this->view('view.name');
    }
}

Lors de l'instanciation, nous avons besoin de recevoir certaines données :

public $contact;
public function __construct($contact){
    $this->contact = $contact;}

L'envoi d'un e-mail convivial peut considérablement augmenter la fidélité de l'utilisateur. Donc avant d'utiliser la vue pour restituer l'e-mail :

public function build(){
    return $this->to(config('mail.from.address'))->subject('HackerPair Inquiry')->view('emails.contact');}

Créez le fichier de vue

resources/views/emails/contact.blade.php, et écrivez brièvement le rendu et le format des données :

Hi,
A Laravel user has sent you a message.
Name: {{ $contact['name'] }}
E-mail: {{ $contact['email'] }}
Message: {{ $contact['msg'] }}

Envoyer un e-mail

Dans l'article précédent, nous avons utilisé la variable $contact pour recevoir les valeurs de champ du corps de la requête.

Dans la section précédente, nous avons préparé le modèle pour l'envoi d'e-mails. "Tout est prêt, tout ce dont nous avons besoin c'est du vent d'est". Vient ensuite la logique principale du processus d'envoi d'e-mails !

N'oubliez pas d'introduire

AppMailContactEmail dans l'en-tête avant de l'utiliser :

Mail::to(config('mail.support.address'))->send(new ContactEmail($contact));
Oui, juste une ligne !

Écrit à la fin

Dans l'ensemble, cela reste très basique et toutes les fonctions sont mises en œuvre avec l'aide de tiers.

Par exemple, le serveur de messagerie dispose de nombreuses méthodes personnalisables. Il existe également une classe d'envoi d'e-mails, qui vous permet de créer de nombreux modèles personnalisés

Ce sont tous des aspects détaillés.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer