Ich versuche, Symfony 6 Mailer mit verschiedenen SMTP-Servern zu verwenden, aber keiner davon funktioniert.
Nachricht in der Warteschlange, aber nicht gesendet. Ich habe versucht, Firewall- oder Portprobleme auf verschiedenen Servern zu beheben.
Es gibt keine Protokollmeldungen oder Ausnahmen, daher bin ich verwirrt.
Hier sind einige DSNs, die ich ausprobiert habe:
MAILER_DSN="smtp://email%40example.com:[email protected]:587?encryption=tls" MAILER_DSN="smtp://[email protected]:[email protected]:587?encryption=tls" MAILER_DSN="smtp://[email protected]:[email protected]:587"
Ich habe tatsächlich viele DSN-Kombinationen mit/ohne Verschlüsselung ausprobiert. Ich vermute, dass das Problem in der DSN-Zeichenfolge liegt, denn wenn ich den falschen Host oder das falsche Passwort verwende, ist der Effekt derselbe.
Das ist ein seit langem bestehendes Problem, das ich lange Zeit nicht lösen konnte.
Dies ist der Sendecode:
use Symfony\Component\Mime\Email; $email = (new Email()) ->from($this->parameterBag->get('app.message.email_from')) ->to($to) ->subject($subject) ->text($text) ->html($text); $sentMessage = $this->mailer->send($email);
mailer.yaml
Inhalt:
framework: mailer: dsn: '%env(MAILER_DSN)%'
und messenger.yaml
Inhalt:
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
根据您当前的信使配置,不会直接发送电子邮件,而是仅在调用
messenger:consume
时发送。这是因为 Messenger 正在对电子邮件(或短信等其他消息)进行排队,而不是立即发送。
您可以在此处了解有关消息组件的更多信息 a>,但如果您想暂时忽略它,只需通过修改传输配置来同步发送电子邮件。