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

Laravel6 change élégamment les comptes d'envoi

Guanhui
Guanhuiavant
2020-06-20 17:41:513407parcourir

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;,
  ],
 ],
];

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(&#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());

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer