Hi @ve3meo
yes, “1 email every 10 seconds” is a valid setting. But there is a WordPress limitation you need to know about before you rely on the 10 seconds:
WordPress core only lets wp-cron.php run once per minute (WP_CRON_LOCK_TIMEOUT, default 60 seconds). That applies to visitor-triggered cron and to external cron jobs alike, and calling wp-cron.php more often doesn’t help on its own, since the lock isn’t released after a run, it only expires. Mail Queue sends one batch per cron run, so with “1 email every 10 seconds” you’d actually get about 1 email per minute. For 400 users that means roughly 7 hours for the whole announcement. If that’s acceptable, you’re done: set 1 email every 10 seconds (or simply every 1 minute, which is the same in practice) and let it run.
If you really want 6 per minute with a 10-second gap, you need both of these:
define( 'WP_CRON_LOCK_TIMEOUT', 10 ); in wp-config.php
- a cron job that calls
wp-cron.php every 10 seconds (plus DISABLE_WP_CRON), which most shared hosts and cron services don’t offer at that frequency
The alternative within the 1-minute limit is “6 emails every 1 minute”. Those 6 go out back to back within one PHP run, which is still a short request, but without the 10-second gap you asked for.
On your logging concern: Mail Queue doesn’t depend on the mailer plugin’s log. It calls wp_mail() and records the success/failure that call returns, in the same request. So its status is complete even if the mailer’s own log isn’t. The only gap is error details: if the mailer reports a failure without a message, we show a generic error.
One more thought. Most of what you’re working around comes from sending bulk mail through Gmail. Gmail’s API limits are made for a personal mailbox, not for announcements to 400 people. A transactional email service (Postmark, Amazon SES, Mailgun, SendGrid, …) has no per-minute limits in your range, handles retries and bounces for you, and makes the backup connection unnecessary. FluentSMTP already offers these as connection types, so you’d only swap the connection, not the plugin. With that in place, Mail Queue at a relaxed rate (say 5-10 per minute) is purely a safety net against PHP timeouts. If the site keeps growing, a small VPS instead of shared hosting would also remove the worker-time limit, but I’d start with the mail service, it’s the cheaper and bigger win.