Skip to content

Version 1.702

Released: 2026-05-??

Updated URLs evolutionupdate

Role based prefixes (user/, reseller/, admin/) have been removed from all URLs. Pages can still be accessed with old URLs, but this may be removed in a future release.

Sent email limits will count local-to-local emails update

The limits system for counting sent emails is restructured. Key improvements:

  • Sent email counting is moved from Exim router to the Exim ACL stage.
  • Emails over the sent limit will always be rejected before entering the Exim mail queue. It will no longer be possible for email to bounce from the router.
  • Emails sent from one mailbox to the other mailbox on the same server (local-to-local emails) will be properly accounted for.
  • Sent email counting is faster. Temporary files in the /etc/virtual/usage/{name}_ids directory are no longer needed.

Changes in configuration files:

FileActionComment
.../configure/exim/exim.conf⚠️ updatedMoved limits check from SMTP routers to the last stage of ACLs.
.../configure/exim/exim.pl⚠️ updatedReplaced sent email limits checking and updating logic.
.../configure/exim/exim.strings.conf⚠️ updatedRemoved no longer used USER_TOO_MANY and AUTH_TOO_MANY messages, updated USER_ON_BLACKLIST_SCRIPT message.

If any of the updated or removed files were customised, please adjust them to stay in sync with the new configuration layout.

Direct spam-checking service integration into Exim update

The Exim mail server configuration is updated to have direct integration with spam-checking services Rspamd or SpamAssassin.

In previous DirectAdmin versions there were three different ways of performing spam checking:

  • Exim and SpamAssassin without Easy Spam Fighter. It used outdated integration that uses custom Exim transport.
  • Exim and SpamAssassin with Easy Spam Fighter. This mode disables legacy integration. Easy Spam Fighter would use SpamAssassin for spam checking.
  • Exim and Rspamd with Easy Spam Fighter. In this mode, Easy Spam Fighter would use Rspamd for spam checking.

The new Exim configuration has direct integration with spam-checking services. Using Easy Spam Fighter is no longer mandatory. Key benefits of the new configuration structure:

  • When SpamAssassin is used without Easy Spam Fighter, the Exim server will use modern spam-checking integration. Same integration that would be used with Easy Spam Fighter. This means spam can be rejected with Exim ACLs while the SMTP session is still active. Instead of accepting the message and checking for spam later.
  • It is now possible to use Rspamd without Easy Spam Fighter.
  • It is now possible to use Easy Spam Fighter without a spam-checking service (spamd=no in CustomBuild options.conf file).

Notable configuration changes on the system:

  • Exim spam checking configuration will be stored in these files:
    • /etc/exim/spamd.global.conf
    • /etc/exim/spamd.acl_smtp_data.conf
  • Spam configuration files are included in the main /etc/exim.conf file.
  • Old rspamd configuration files in /etc/exim/rspamd are removed.
  • The legacy integration configuration file /etc/exim.spamassassin.conf is removed.

Here is the list of how this change is reflected in the CustomBuild configuration files structure.

FileActionComment
.../configure/exim/exim.spamassassin.conf❌ removedLegacy integration using Exim transport. Not supported anymore.
.../configure/rspamd/check_message.conf❌ removedSpam checking logic, now stored in exim/rspamd.acl_smtp_data.conf.
.../configure/rspamd/connect.conf❌ removedNo longer relevant.
.../configure/rspamd/variables.conf❌ removedGlobal configuration, now stored in exim/rspamd.global.conf.
.../configure/easy_spam_fighter/check_rcpt.mid.conf❌ removedACL variables acl_m_spam_user and acl_m_spam_domain are now set in the main exim.conf.
.../configure/easy_spam_fighter/check_mail.conf⚠️ updatedACL variables acl_m_spam_user and acl_m_spam_domain are now set in the main exim.conf.
.../configure/easy_spam_fighter/check_message.conf⚠️ updatedIt will no longer connect to spam-checking service. It expects Exim to perform it.
.../configure/easy_spam_fighter/connect.conf⚠️ updatedNo longer has Rspamd-specific logic.
.../configure/easy_spam_fighter/variables.conf⚠️ updatedNo longer has Rspamd-specific logic.
.../configure/exim/exim.conf⚠️ updatedPerforms spam checking by including /etc/exim/spamd.global.conf and /etc/exim/spamd.acl_smtp_data.conf.
.../configure/exim/rspamd.acl_smtp_data.conf✅ newPerforms spam checking with Rspamd, the same logic used to be in rspamd/check_message.conf.
.../configure/exim/rspamd.global.conf✅ newGlobal configuration for connection to Rspamd, the same logic used to be in rspamd/variables.conf.
.../configure/exim/spamassassin.acl_smtp_data.conf✅ newPerforms spam checking with SpamAssassin, the same logic used to be in easy_spam_fighter/check_message.conf.
.../configure/exim/spamassassin.global.conf✅ newGlobal configuration for connection to SpamAssassin.

If any of the updated or removed files were customised, please adjust them to stay in sync with the new configuration layout.

cpanel restore: LetsEncrypt/ZeroSSL: ensure domain.com.cert.creation_time fix

When a cpanel backup is converted to a DirectAdmin backup before a restore, the .creation_time files were not being created, preventing auto-renewal of LetsEncrypt certificates. This fix creates the missing files during conversion.

Show details in backup status dialog evolutionfix

The backup status dialog (located in Admin Backup and Restore -> In Progress -> Details) now displays Details: section.

Get rid of empty space within reseller backups page evolutionfix

The content of reseller backups page (located in Reseller Tools -> Manage User Backups) no longer appears at the bottom of the screen.

Race condition: users.list, reseller.list, admin.list fix

Improved locking and logic for writing the users.list, reseller.list, admin.list files. It will mostly help those who make parallel API calls to create accounts, but also affects account creation via GUI and restores. Any errors with this new add_to_list will be logged in the error.log or errortaskq.log files, with strings starting with add_to_list:%s: ..., where the %s would represent the account that was to be added to the list, followed by the reason for the error (locking, reading, or writing). In addition to the better locking logic, should any lock fail to be obtained (which will be far less likely), it will trigger new task.queue commands to rebuild those lists:

action=rewrite&value=users.list&creator=fred
action=rewrite&value=reseller.list&creator=admin
action=rewrite&value=admin.list&creator=admin

where creator must be presenty for any of these rewrite types. The creator for the users.list variant can be a Reseller or Admin, and the reseller.list and admin.list must be an Admin.

Remove domain selector from subdomain logs page evolutionfix

Selecting a different domain while in subdomain logs page (located in user level -> Subdomain Management -> usage Log / error Log) caused incorrect logs to be displayed.

To prevent inconsistent data, domain selector has been removed from this page.