Avant-propos
Lors de la création d'un système de notification, selon Selon les besoins de l'entreprise, utilisez différents comptes pour envoyer des e-mails selon différents scénarios. Laravel ne prend en charge l'envoi d'e-mails qu'à partir d'une seule adresse e-mail par défaut. Insatisfait de la situation réelle, après avoir utilisé la méthode Config::set() pour définir dynamiquement le compte, l'e-mail peut être envoyé avec succès, mais le compte d'envoi ne peut pas être modifié à nouveau en le réinitialisant.
Tutoriel recommandé : "Tutoriel Laravel"
La méthode est la suivante :
Créez le fichier de configuration du compte de messagerie/config/my_emails.php
<?php return [ 'emails' => [ 'a' => [ 'email' => 'a@188.com', 'password' => '专属客户端密码', 'smtp' => 'smtp.188.com', 'port' => '465', 'encryption' => 'ssl', 'name' => '靓仔A', ], 'b' => [ 'email' => 'b@188.com', 'password' => '专属客户端密码', 'smtp' => 'smtp.188.com', 'port' => '994', 'encryption' => 'ssl', 'name' => '靓女b', ], ], ];
Ensuite, créez la classe d'assistant de commutation
<?php namespace App\Mail; use Illuminate\Support\Facades\Mail; class MailHelper { public static function setAccount($accountName) { $transport = new \Swift_SmtpTransport( config("my_emails.emails.{$accountName}.smtp"), config("my_emails.emails.{$accountName}.port"), config("my_emails.emails.{$accountName}.encryption") ); $transport->setUsername(config("my_emails.emails.{$accountName}.email")); $transport->setPassword(config("my_emails.emails.{$accountName}.password")); $mailer = new \Swift_Mailer($transport); Mail::setSwiftMailer($mailer); Mail::alwaysFrom(config("my_emails.emails.{$accountName}.email"), config("my_emails.emails.{$accountName}.name")); } }
L'utilisation réelle est la suivante :
<?php MailHelper::setAccount('a'); Mail::to('boy@163.com')->send(new TestMail()); MailHelper::setAccount('b'); Mail::to('girl@163.com')->send(new TestMail());
Résumé
C'est tout pour cet article sur la façon de changer élégamment de compte d'envoi dans Laravel 6.18.19
Recommandations associées : "Tutoriel PHP
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!