Steps to reproduce
Scheduled send fails in Mail 5.8.0: MimeMessage::build() Argument #3 must be bool, array given
Summary
Scheduled sending does not work in Nextcloud Mail 5.8.0.
The global Nextcloud cron works correctly. The Mail OutboxWorkerJob is registered, runs normally, and executes after the scheduled send time. However, the scheduled message is not sent because OutboxWorkerJob fails with a TypeError in MimeMessage::build().
Immediate/manual sending from the Mail UI works.
Environment
- Nextcloud AIO
- Nextcloud AIO version:
13.0.4
- Nextcloud version:
33.0.3
- Mail app version:
5.8.0
- Background jobs mode:
Cron
- User timezone:
Europe/Bratislava
- Server/container time: correct
- No Mail app update is currently available through OCC/App Store
What I tested
The test message was scheduled for:
UTC equivalent:
The Mail outbox background job ran after the scheduled time:
OCA\Mail\BackgroundJob\OutboxWorkerJob
Last executed: 2026-05-19T19:57:34+00:00
So the job clearly ran after the message should have been sent.
The message was a plain text test email without attachments.
Mail background job exists and runs
| 82495485209419777 | OCA\Mail\BackgroundJob\OutboxWorkerJob | 2026-05-19T19:57:34+00:00 | null |
Manual execution of the job also works:
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ background-job:execute --force-execute 82495485209419777
Output:
Job class: OCA\Mail\BackgroundJob\OutboxWorkerJob
Arguments: null
Type: timed
Forcing execution of the job
Job executed!
Timezone checks
Host local time:
Tue May 19 09:49:21 PM CEST 2026
Host UTC time:
Tue May 19 07:49:21 PM UTC 2026
User timezone:
Nextcloud system default timezone:
The OutboxWorkerJob timestamp is in UTC and matches the expected CEST offset. This does not look like a timezone or cron scheduling issue.
Error from nextcloud.log
At the time when the scheduled message should have been processed, this error appears:
Could not send outbox message 101: OCA\Mail\Service\MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given, called in /var/www/html/custom_apps/mail/lib/Service/MailTransmission.php on line 138
Relevant part of the trace:
OCA\Mail\Service\MimeMessage->build(
"Skusobny email\n--\u00a0\u00a0\nTony Kraj\u010d\u00edk\n+421 949 731110\n\u00a0",
null,
[],
false
)
The third argument passed to MimeMessage::build() is an array [], but the method expects a boolean $isPgpEncrypted.
Full relevant log entry
{
"level": 2,
"time": "2026-05-19T19:57:34+00:00",
"app": "mail",
"scriptName": "occ",
"message": "Could not send outbox message 101: OCA\\Mail\\Service\\MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given, called in /var/www/html/custom_apps/mail/lib/Service/MailTransmission.php on line 138",
"version": "33.0.3.2",
"occ_command": [
"occ",
"background-job:worker"
],
"exception": {
"Exception": "TypeError",
"Message": "OCA\\Mail\\Service\\MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given, called in /var/www/html/custom_apps/mail/lib/Service/MailTransmission.php on line 138",
"File": "/var/www/html/custom_apps/mail/lib/Service/MimeMessage.php",
"Line": 35
}
}
Available Mail OCC commands
There does not seem to be a dedicated OCC command to repair or process the Mail outbox / scheduled-send queue.
mail:account:create
mail:account:debug
mail:account:delete
mail:account:diagnose
mail:account:export
mail:account:export-threads
mail:account:sync
mail:account:train
mail:account:update
mail:clean-up
mail:repair:system-autoresponders
mail:repair:tags
mail:tags:migration-jobs
mail:thread
Expected behavior
The scheduled email should be sent by OCA\Mail\BackgroundJob\OutboxWorkerJob after the scheduled time.
Actual behavior
The scheduled email is not sent.
OutboxWorkerJob runs, but fails with:
MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given
Conclusion
This looks like a bug/regression in the scheduled send / outbox processing path in Nextcloud Mail 5.8.0.
The job runs correctly, but MailTransmission.php appears to call MimeMessage::build() with arguments in the wrong order or with the wrong type.
Immediate sending through the UI works, but scheduled sending through OutboxWorkerJob fails.
Expected behavior
reported above
Actual behavior
reported above
Mail app version
5.8.0
Nextcloud version
33.0.3
Mailserver or service
No response
Operating system
Nextcloud AIO - Ububtu server 24.0.4
PHP engine version
None
Nextcloud memory caching
No response
Web server
None
Database
None
Additional info
No response
Steps to reproduce
Scheduled send fails in Mail 5.8.0:
MimeMessage::build()Argument #3 must be bool, array givenSummary
Scheduled sending does not work in Nextcloud Mail 5.8.0.
The global Nextcloud cron works correctly. The Mail
OutboxWorkerJobis registered, runs normally, and executes after the scheduled send time. However, the scheduled message is not sent becauseOutboxWorkerJobfails with aTypeErrorinMimeMessage::build().Immediate/manual sending from the Mail UI works.
Environment
13.0.433.0.35.8.0CronEurope/BratislavaWhat I tested
The test message was scheduled for:
UTC equivalent:
The Mail outbox background job ran after the scheduled time:
So the job clearly ran after the message should have been sent.
The message was a plain text test email without attachments.
Mail background job exists and runs
Manual execution of the job also works:
sudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ background-job:execute --force-execute 82495485209419777Output:
Timezone checks
Host local time:
Host UTC time:
User timezone:
Nextcloud system default timezone:
The
OutboxWorkerJobtimestamp is in UTC and matches the expected CEST offset. This does not look like a timezone or cron scheduling issue.Error from
nextcloud.logAt the time when the scheduled message should have been processed, this error appears:
Relevant part of the trace:
The third argument passed to
MimeMessage::build()is an array[], but the method expects a boolean$isPgpEncrypted.Full relevant log entry
{ "level": 2, "time": "2026-05-19T19:57:34+00:00", "app": "mail", "scriptName": "occ", "message": "Could not send outbox message 101: OCA\\Mail\\Service\\MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given, called in /var/www/html/custom_apps/mail/lib/Service/MailTransmission.php on line 138", "version": "33.0.3.2", "occ_command": [ "occ", "background-job:worker" ], "exception": { "Exception": "TypeError", "Message": "OCA\\Mail\\Service\\MimeMessage::build(): Argument #3 ($isPgpEncrypted) must be of type bool, array given, called in /var/www/html/custom_apps/mail/lib/Service/MailTransmission.php on line 138", "File": "/var/www/html/custom_apps/mail/lib/Service/MimeMessage.php", "Line": 35 } }Available Mail OCC commands
There does not seem to be a dedicated OCC command to repair or process the Mail outbox / scheduled-send queue.
Expected behavior
The scheduled email should be sent by
OCA\Mail\BackgroundJob\OutboxWorkerJobafter the scheduled time.Actual behavior
The scheduled email is not sent.
OutboxWorkerJobruns, but fails with:Conclusion
This looks like a bug/regression in the scheduled send / outbox processing path in Nextcloud Mail 5.8.0.
The job runs correctly, but
MailTransmission.phpappears to callMimeMessage::build()with arguments in the wrong order or with the wrong type.Immediate sending through the UI works, but scheduled sending through
OutboxWorkerJobfails.Expected behavior
reported above
Actual behavior
reported above
Mail app version
5.8.0
Nextcloud version
33.0.3
Mailserver or service
No response
Operating system
Nextcloud AIO - Ububtu server 24.0.4
PHP engine version
None
Nextcloud memory caching
No response
Web server
None
Database
None
Additional info
No response