Version 1.61.3

Released: 2020-06-08

Custom Domain Items not showing up fixed

Relating to the restore fix, custom domain items were no longer working correctly.

Subdomain override reports wrong required path (SKINS) fixed

The required path for a subdomain DocumentRoot override requires:


style reference, relative to below the /home/user path.

If you try to use /home/user/domains/, DA would have reported;

Cannot Execute Your Request. Path must start with '/home/user/domains/'

which was incorrect. Chnaged to report '/domains'.


Also set a placeholder into the subdomain_override.html skin page, eg:


<td class=list><input type=text name=public_html size=40 value="|SUB_PUBLIC_HTML|" placeholder="/domains/|domain|/public_html"></td>
<td class=list><input type=text name=private_html size=40 value="|SUB_PRIVATE_HTML|" placeholder="/domains/|domain|/private_html"></td>

Unify wording in lost password messages (SECURITY) fixed

Keep messages consistent when checking for issues when resetting the lost password.

Threat level: low


doveadm expunge returned an error: ... Mailbox doesn't exist: INBOX.spam fixed

The nightly purge_spam_days feature, when enabled would try to clear old data from spam and trash folders.

The issue is if those folders do not exist, errors are added to the errortaskq.log, when they're not needed.

Releated errors:

dovecadmn expunge returned an error: doveadm( Error: Syncing mailbox 'INBOX.Trash' failed: Mailbox doesn't exist: INBOX.Trash

dovecadmn expunge returned an error: doveadm( Error: Syncing mailbox 'INBOX.spam' failed: Mailbox doesn't exist: INBOX.spam

If doveadm returns code 68 (above), the error will not be logged.

Also fixed the typo:

dovecadmn » doveadm

Cannot find any security questions from security_questions.txt fixed

Relating to changes with the introduction of gettext translations, if the server is missing the file:


which would be the case for new installs, the error would show up when trying to access the security questions page:

Error showing security questions

Cannot find any security questions from security_questions.txt

To resolve this, we've added a default internal list, loaded in the event the .txt file on disk is missing (as other languages may still need to load it in).

The added benefit with the internal loading is that .po/.mo files (gettext) will now be able to translate these strings.

Domain does not show 'suspended' if suspended due to bandwidth fixed

When suspending a domain manually, suspensions work normally.

However, automated suspensions, although going through the process correctly, was not saving the suspended state in the file, so it was showing up incorrectly in the GUI.

Note: this is not related to User suspensions, only per-domain suspensions when a User has a per-domain bandwidth limit set (default is to share with the User limit)

Default Change: brute_force_roundcube_log from errors to errors.log fixed

The update to RoundCube 1.4 changed the default errors logging path to be:


it was previously:


Internal default value now changed to:


however, we've added a hardcoded check on:


if it stil exists.

The brute.conf does log the last read size, so that log will likely not change once you update, so it will not hurt scanning efficiency by leaving it there as a backup check, in case anyone is is still running an older version of RoundCube.

Security questions not showing question due to LC_TIME!=C fixed

Bug related to the new gettext translation system where if LC_TIME was not using C, then it affected the Security Questions feature from displaying the correct question.

To prevent this or other LC areas from being affected, we've set LC_ALL=C, and only set LC_MESSAGES="" which is the only area that is used for translations anyway.

GIT:d208d0e95f90ac1570642662d721a976dca8f54f: June 8, 2020:5:53pm

Secondary c bug found/fix in code:

GIT:f350cdb1d43a8ecff2b069cf9b9286fec3c9512a: June 8, 2020: 6:12pm

Last Updated: