Closed
Description
Symfony version(s) affected: 5.0.5+
Description
Happens if sending a email, and after 10 seconds (and before 100 seconds) a new email (on the same connection) is sent, then a TransportException
is thrown:
Expected response code "250" but got code "451", with message "451 4.4.2 Timeout waiting for data from client.".
If sending another email an other TransportException
is thrown:
Unable to write bytes on the wire.
This happens until I wait for 100 seconds.
How to reproduce
Use symfony/messenger, run message:consume
and send a Email, wait for between 10 and 100 seconds then send a new Email.
I have only been able to reproduce this using Amazon SMTP server, but it might be others too.
Possible Solution
setting $pingThreshold
in SmtpTransport
to 10
seams to solve the issue.
Additional context
14:32:24 INFO [messenger] Received message Symfony\Component\Mailer\Messenger\SendEmailMessage ["message" => Symfony\Component\Mailer\Messenger\SendEmailMessage^ { …},"class" => "Symfony\Component\Mailer\Messenger\SendEmailMessage"]
14:32:24 ERROR [messenger] Error thrown while handling message Symfony\Component\Mailer\Messenger\SendEmailMessage. Sending for retry #1 using 1000 ms delay. Error: "Expected response code "250" but got code "451", with message "451 4.4.2 Timeout waiting for data from client."." ["message" => Symfony\Component\Mailer\Messenger\SendEmailMessage^ { …},"class" => "Symfony\Component\Mailer\Messenger\SendEmailMessage","retryCount" => 1,"delay" => 1000,"error" => "Expected response code "250" but got code "451", with message "451 4.4.2 Timeout waiting for data from client.".","exception" => Symfony\Component\Messenger\Exception\HandlerFailedException^ { …}]
14:32:24 INFO [messenger] Received message Symfony\Component\Mailer\Messenger\SendEmailMessage ["message" => Symfony\Component\Mailer\Messenger\SendEmailMessage^ { …},"class" => "Symfony\Component\Mailer\Messenger\SendEmailMessage"]
14:32:24 ERROR [messenger] Error thrown while handling message Symfony\Component\Mailer\Messenger\SendEmailMessage. Sending for retry #1 using 1000 ms delay. Error: "Unable to write bytes on the wire." ["message" => Symfony\Component\Mailer\Messenger\SendEmailMessage^ { …},"class" => "Symfony\Component\Mailer\Messenger\SendEmailMessage","retryCount" => 1,"delay" => 1000,"error" => "Unable to write bytes on the wire.","exception" => Symfony\Component\Messenger\Exception\HandlerFailedException^ { …}]
Looks like it happens after #35633 was introduced.