Maison > cadre php > Laravel > Laravel6 change élégamment les comptes d'envoi

Laravel6 change élégamment les comptes d'envoi

Guanhui
Libérer: 2020-06-20 18:00:03
avant
3445 Les gens l'ont consulté

Laravel6 change élégamment les comptes d'envoi

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 [
 &#39;emails&#39; => [
  &#39;a&#39; => [
   &#39;email&#39; => &#39;a@188.com&#39;,
   &#39;password&#39; => &#39;专属客户端密码&#39;,
   &#39;smtp&#39; => &#39;smtp.188.com&#39;,
   &#39;port&#39; => &#39;465&#39;,
   &#39;encryption&#39; => &#39;ssl&#39;,
   &#39;name&#39; => &#39;靓仔A&#39;,
  ],
  &#39;b&#39; => [
   &#39;email&#39; => &#39;b@188.com&#39;,
   &#39;password&#39; => &#39;专属客户端密码&#39;,
   &#39;smtp&#39; => &#39;smtp.188.com&#39;,
   &#39;port&#39; => &#39;994&#39;,
   &#39;encryption&#39; => &#39;ssl&#39;,
   &#39;name&#39; => &#39;靓女b&#39;,
  ],
 ],
];
Copier après la connexion

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"));
 }
}
Copier après la connexion

L'utilisation réelle est la suivante :

<?php
MailHelper::setAccount(&#39;a&#39;);
Mail::to(&#39;boy@163.com&#39;)->send(new TestMail());
MailHelper::setAccount(&#39;b&#39;);
Mail::to(&#39;girl@163.com&#39;)->send(new TestMail());
Copier après la connexion

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal