当我尝试发送本地邮件时,我什么也没收到,但我没有错。通常我应该在 Mailhog 上收到邮件。我通过使用 phpmailer 发送电子邮件进行了测试,它运行良好。
你能帮我吗
索引控制器文件
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Mailer\MailerInterface;
class IndexController extends AbstractController
{
/**
* @Route("/", name="index")
*/
public function index(MailerInterface $mailer): Response
{
$email = (new Email())
->from('no-reply@example.com')
->to('user@example.com')
->subject('I love Me')
->html('<h1>Lorem ipsum</h1> <p>...</p>');
try {
$mailer->send($email);
} catch (TransportExceptionInterface $e) {
dump($e);
}
}
}
.env 文件
###> symfony/webapp-meta ###
MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0
###< symfony/webapp-meta ###
###> symfony/mailer ###
MAILER_DSN=smtp://localhost:1025
###< symfony/mailer ###
mailer.yaml 文件
framework:
mailer:
dsn: '%env(MAILER_DSN)%'
messenger.yaml 文件
framework:
messenger:
failure_transport: failed
transports:
# https://symfony.com/doc/current/messenger.html#transport-configuration
async:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
options:
use_notify: true
check_delayed_interval: 60000
retry_strategy:
max_retries: 3
multiplier: 2
failed: 'doctrine://default?queue_name=failed'
# sync: 'sync://'
routing:
Symfony\Component\Mailer\Messenger\SendEmailMessage: async
Symfony\Component\Notifier\Message\ChatMessage: async
Symfony\Component\Notifier\Message\SmsMessage: async
# Route your messages to the transports
# 'App\Message\YourMessage': async