So kannst du ab Symfony 6.2 (also ab Contao 5) deine E-Mails pro Zeiteinheit limitieren:
Zuerst den Symfony Rate Limiter installieren.
Code:
composer require symfony/rate-limiter
Dann bspw. folgende Konfiguration anlegen:
PHP-Code:
# config/config.yaml
framework:
rate_limiter:
mailer:
policy: fixed_window
limit: 250
interval: 60 minutes
messenger:
transports:
mailer:
dsn: 'doctrine://default?table_name=tl_message_queue&queue_name=mailer&auto_setup=false'
rate_limiter: mailer
routing:
'Symfony\Component\Mailer\Messenger\SendEmailMessage': mailer
Auf deinem Server dann folgenden Crontab einrichten:
PHP-Code:
* * * * * /path/to/php /path/to/contao/bin/console messenger:consume mailer --time-limit=59
("/path/to/php" mit dem richtigen Pfad zum PHP CLI deiner PHP Version und "/path/to/contao" mit dem Pfad zu deiner Contao 5 Installation ersetzen).
Damit werden nur mehr 250 E-Mails pro Stunde gesendet. Egal von wo.