Estamos procurando um código sniped para testar um SMTP de e-mail do Laravel enquanto imprimimos o diálogo SMTP. O diálogo SMTP geralmente contém o ID da mensagem, então, caso um e-mail não chegue, ele pode ser rastreado no servidor envolvido.
Nas versões anteriores do Laravel, usávamos
$to = '[email protected]';
Mail::getSwiftMailer()->registerPlugin( new Swift_Plugins_LoggerPlugin( new Swift_Plugins_Loggers_EchoLogger(false) ));
Mail::raw('Testmail', function ($message) use ($to) { $message->to($to)->subject('Testmail'); });
Isso leva a
BadMethodCallException Method Illuminate\Mail\Mailer::getSwiftMailer does not exist.
Como isso pode ser portado para o Laravel 11 que usa o mailer Symfony?
Tentei um pouco com o ChatGPT, mas sem sorte até agora.
Você pode simplesmente conseguir isso com
symfony/mailer
: Escreva um manipulador de eventos que escuteSentMessageEvent
. Ele contém um objeto deSentMessage
, e sua propriedadedebug
contém o diálogo smtp completo.Com base na resposta de Nico, criei o seguinte trecho que pode ser facilmente colado para
php artisan tinker
depurar a entrega de e-mail de um aplicativo Laravel 9+: