After upgrading to SuiteCRM 8.9, I can send campaign test emails but not scheduled emails. The Scheduled Run Date is now in the past (by three hours as I write this). The “schedulers:run” cron job (actually a systemd timer) is running successfully, both automatically and via the command line. There are a bunch of emails under Message Queue. The Queueing Status is Finished but the Status is stuck in Pending Send. “SEND CAMPAIGN EMAILS” and “QUEUE CAMPAIGN EMAILS” are both set to “As often as possible”.
A possible factor is that under Inbound Email, “DOES A BOUNCE EMAIL EXIST?” says “No” even though a bounce email does exist. If I go to admin > Inbound Email, the bounce account is listed, and if I go into it and select Actions > Edit > Test Connection Settings, I see “Connection completed successfully”. However I see nowhere to set the bounce account as part of the campaign, whether in the “New marketing email” wizard or in the edit window of the already created marketing email.
I see no relevant errors in the systemd journal, Apache logs, or PHP-FPM logs.
Update: The emails were finally sent exactly 6 hours after the scheduled time, which is my time zone offset from UTC, so it appears to be a time zone issue. The time zone is set correctly for the user who sent the campaign email. There appears to be no global time zone setting anymore (none under Admin > Locale or anywhere else I looked). The time zone is also set correctly in my command-line php config, but it wasn’t set in my PHP-FPM configs, so I’ll set it there and see what happens next time.
The bounce email issue is still present, but obviously didn’t prevent the sending. I’ll keep looking into that as I have time.
One possible cause for the timezone difference is that the Campaigns run from the Schedulers, and these are executed by a crontab entry. So they use a PHP environment called CLI which is different from the one which executes inside Apache.
So, there are two different php.ini, typically these on Debian