Closed
Description
Symfony version(s) affected
v6.4 and v7.0
Description
When setting setMaxPerSecond for a Transport instance, PHP 8 returns the follow error when sending an email:
Deprecated: Implicit conversion from float 43387.03155517579 to int loses precision in /var/www/vendor/symfony/mailer/Transport/AbstractTransport.php on line 132
This is due to usleep expecting an integer.
How to reproduce
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\Transport\Smtp\EsmtpTransport;
use Symfony\Component\Mime\Email;
require 'vendor/autoload.php';
$transport = new EsmtpTransport('mail', 1025);
$transport->setMaxPerSecond(10); // <-- This line triggers the error when sending emails
$mailer = new Mailer($transport);
for ($i = 0; $i < 10; $i++) {
$message = (new Email())
->to('someone@domain.com')
->from('noreplies@example.com')
->subject('This is a test email message')
->html('<p>This is test email message number ' . ($i + 1) . '</p>');
$mailer->send($message);
}
Possible Solution
Cast value to int before calling usleep
Additional Context
No response