XF 2.2 Swift_TransportException

FloV

Well-known member
Hi,

i've got a lot (!) of errors like this in my error log:

Server-Fehlerprotokoll
  • Swift_TransportException: Email to xxx@mac.com failed: Expected response code 250 but got code "451", with message "451 4.4.2 Timeout waiting for data from client. "
  • src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:459
  • Generiert von: Unbekanntes Konto
  • 18 August 2021 um 16:50
I'm sending my mails through Amazon SES on Port 25. A lot of mails are going through, but some doesn't. Do you know what's causing these errors?

Thanks in advance

Florian
 

Sim

Well-known member
Some googling seems to indicate that this is a problem with the SMTP transport specifically when sending to Amazon SES.

I think this is something that the XF devs will need to look at - I suspect it might be a Swiftmailer bug / gotcha with SES.
 

Chris D

XenForo developer
Staff member
I believe other customers are using SES without issue so not entirely sure how much help we can be.

I’ve seen reference to Amazon SES rate limits when this error is mentioned so I would check to ensure you’re within those. That would be consistent with the intermittent nature of it.
 

FloV

Well-known member
Hmm, that doesn't seem the case:

1631094389420.png

Everything in the SES Console looks fine, but i got around 45 errors in XenForo in the last hour.

I got around 10 of this errors (with different mail addresses):

Code:
ErrorException: Email to xxx@xxx.de failed: [E_WARNING] fwrite(): SSL: Broken pipe src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:223
Generiert von: Unbekanntes Konto 8 September 2021 um 10:38
Stack-Trace
#0 [internal function]: XF::handlePhpError(2, '[E_WARNING] fwr...', '/var/www/share/...', 223, Array)
#1 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php(223): fwrite(Resource id #655, 'QUIT
MAIL FROM...')
#2 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php(168): Swift_Transport_StreamBuffer->doCommit('QUIT
MAIL FROM...')
#3 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ByteStream/AbstractFilterableInputStream.php(91): Swift_ByteStream_AbstractFilterableInputStream->doWrite('QUIT
MAIL FROM...')
#4 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(327): Swift_ByteStream_AbstractFilterableInputStream->write('MAIL FROM:<kont...')
#5 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(305): Swift_Transport_AbstractSmtpTransport->executeCommand('MAIL FROM:<kont...', Array, Array, true, NULL)
#6 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(386): Swift_Transport_EsmtpTransport->executeCommand('MAIL FROM:<kont...', Array, Array, true)
#7 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(485): Swift_Transport_EsmtpTransport->doMailFromCommand('kontakt@planet-...')
#8 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(518): Swift_Transport_AbstractSmtpTransport->doMailTransaction(Object(Swift_Message), 'kontakt@planet-...', Array, Array)
#9 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(206): Swift_Transport_AbstractSmtpTransport->sendTo(Object(Swift_Message), 'kontakt@planet-...', Array, Array)
#10 src/XF/Mail/Mailer.php(304): Swift_Transport_AbstractSmtpTransport->send(Object(Swift_Message), Array)
#11 src/XF/Mail/Queue.php(138): XF\Mail\Mailer->send(Object(Swift_Message), Object(XF\Mail\SmtpTransport), Array)
#12 src/XF/Job/MailQueue.php(12): XF\Mail\Queue->run(7.33976)
#13 src/XF/Job/Manager.php(258): XF\Job\MailQueue->run(7.33976)
#14 src/addons/SV/CachePermissionChecks/XF/Job/Manager.php(17): XF\Job\Manager->runJobInternal(Array, 7.33976)
#15 src/XF/Job/Manager.php(200): SV\CachePermissionChecks\XF\Job\Manager->runJobInternal(Array, 7.33976)
#16 src/XF/Job/Manager.php(84): XF\Job\Manager->runJobEntry(Array, 7.33976)
#17 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#18 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 src/XF/Cli/Runner.php(109): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 cmd.php(15): XF\Cli\Runner->run()
#24 {main}
Status der Anfrage
array(1) {
  ["cli"] => string(66) "/var/www/share/mydomain.com/htdocs/cmd.php --quiet xf:run-jobs"
}

And a lot more of this errors (sometimes same and sometimes different mail addresses):

Code:
Swift_TransportException: Email to xxx@xxx.de failed: Expected response code 250 but got code "451", with message "451 4.4.2 Timeout waiting for data from client. " src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:459
Generiert von: Unbekanntes Konto 8 September 2021 um 10:43
Stack-Trace
#0 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(344): Swift_Transport_AbstractSmtpTransport->assertResponseCode('451 4.4.2 Timeo...', Array)
#1 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(305): Swift_Transport_AbstractSmtpTransport->executeCommand('MAIL FROM:<kont...', Array, Array, true, NULL)
#2 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(386): Swift_Transport_EsmtpTransport->executeCommand('MAIL FROM:<kont...', Array, Array, true)
#3 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(485): Swift_Transport_EsmtpTransport->doMailFromCommand('kontakt@planet-...')
#4 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(518): Swift_Transport_AbstractSmtpTransport->doMailTransaction(Object(Swift_Message), 'kontakt@planet-...', Array, Array)
#5 src/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(206): Swift_Transport_AbstractSmtpTransport->sendTo(Object(Swift_Message), 'kontakt@planet-...', Array, Array)
#6 src/XF/Mail/Mailer.php(304): Swift_Transport_AbstractSmtpTransport->send(Object(Swift_Message), Array)
#7 src/XF/Mail/Queue.php(138): XF\Mail\Mailer->send(Object(Swift_Message), Object(XF\Mail\SmtpTransport), Array)
#8 src/XF/Job/MailQueue.php(12): XF\Mail\Queue->run(7.97879)
#9 src/XF/Job/Manager.php(258): XF\Job\MailQueue->run(7.97879)
#10 src/addons/SV/CachePermissionChecks/XF/Job/Manager.php(17): XF\Job\Manager->runJobInternal(Array, 7.97879)
#11 src/XF/Job/Manager.php(200): SV\CachePermissionChecks\XF\Job\Manager->runJobInternal(Array, 7.97879)
#12 src/XF/Job/Manager.php(84): XF\Job\Manager->runJobEntry(Array, 7.97879)
#13 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#14 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 src/XF/Cli/Runner.php(109): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 cmd.php(15): XF\Cli\Runner->run()
#20 {main}
Status der Anfrage
array(1) {
  ["cli"] => string(66) "/var/www/share/mydomain.com/htdocs/cmd.php --quiet xf:run-jobs"
}
 

gerryvz

Well-known member
Same thing happens with Google mail, leading me to believe it is an issue with Swiftmailer, not Amazon SES or Google Gmail. This didn't happen until relatively recent versions of XF. I do not believe it is a bug in the XF code.
 

hotdoghero

Member
Possibly useful datapoint: I host two XF instances on dedicated servers, both are using Amazon SES for mail and both are running Plesk, however I only get this error on the server running Debian 9. The other server is Ubuntu 18. I don't recall fudging any settings related to SMTP or mail differently on these two servers.
 

FloV

Well-known member
So there are around 2.500 errors like this in my error log, just from the past 7 days. After looking around for this error, i found the solution to set the ping_threshold to 10 in the config of the SMTP mailer. Is there any possibility to do this within the xenforo config file?
 

bomb2060

Member
So there are around 2.500 errors like this in my error log, just from the past 7 days. After looking around for this error, i found the solution to set the ping_threshold to 10 in the config of the SMTP mailer. Is there any possibility to do this within the xenforo config file?
Did you resolve this? Am having the same issue. Changing port doesn't seem to help.
 
Top