Skip to content

Version 1.703

Released: 2026-06-01

Support for Ubuntu 26.04 LTS new

This release of DirectAdmin starts supporting the latest Ubuntu 26.04 LTS systems.

‼️ More secure outgoing email delivery new

The Exim configuration is updated to use a more secure email delivery mode for outgoing emails. When outgoing email is being routed, Exim will check the MX records for the destination domain even if this domain is configured as local on the server. If MX records point back to the server, the local mail delivery will be performed. If MX records point to an external server, then email will be delivered over SMTP.

Key benefits of this change:

  • Protection from email hijacking. If some user adds a popular domain like gmail.com or proton.me as his own domain, he will not be able to hijack outgoing emails for these domains that are being sent by other users on the same server.
  • Correct routing when MX proxy is being used. If the domain owner is using an external mail filtering service, his domain MX records will point to the service provider. After email is checked by the service provider it will be delivered to the DirectAdmin server. Emails from one user on the server to another user on the same server would get routed to the external service provider.

This new feature is controlled with the FORCED_MX_DNS_CHECK macro. It is enabled by default but can be disabled by setting this macro to the value no.

Examples:

sh
# Disable strict MX checking (insecure):
sed -i '/^FORCED_MX_DNS_CHECK /d' /etc/exim.variables.conf.custom
echo 'FORCED_MX_DNS_CHECK = no' >> /etc/exim.variables.conf.custom
da build exim_conf

# Restore strict MX checking
sed -i '/^FORCED_MX_DNS_CHECK /d' /etc/exim.variables.conf.custom
da build exim_conf

New directadmin.conf fields new

The following new fields have been added to directadmin.conf:

  • acme_disable_after_failures - Controls how many times to retry TLS certificate issuance/renewal before disabling it. Zero value means retry indefinitely.

    Deprecates letsencrypt_disable_renew_after_renew_failure & letsencrypt_renewal_failure_notice_after_attempt

  • notify_admins_on_user_acme_failures - Notify the admins when user's TLS certificate fails to issue or renew.

    Deprecates letsencrypt_renewal_notice_to_admins

  • notify_reseller_on_user_acme_failures - Notify the reseller when user's TLS certificate fails to issue or renew.

    Deprecates letsencrypt_renewal_notice_to_admins

Resource usage evolutionnew

The System Info & Files -> Resource usage page on the user level is replaced with a new page that shows historical resource usage information.

The same resource usage information is also available for the administrator and reseller access levels in the My Users -> {username} -> Resource usage.

Resource usage data is collected every minute. It is stored for up to 30 days.

Resource usage page

Domain pointers in search results evolutionnew

Search results now return domain pointers.

Domain TLS certificates management page evolutionupdate

The SSL Certificates page now includes a dedicated certificate management section. Users can view all installed certificates with their status, DNS names, and expiry dates. Certificates can be viewed, downloaded, replaced, or deleted individually.

Domain TLS certificates management page

Software version changes custombuildupdate

  • composer updated from 2.9.8 to 2.10.0
  • exim updated from 4.99.3 to 4.99.4
  • MariaDB 10.11 updated from 10.11.17 to 10.11.18
  • MariaDB 10.6 updated from 10.6.26 to 10.6.27
  • MariaDB 11.4 updated from 11.4.11 to 11.4.12
  • MariaDB 11.8 updated from 11.8.7 to 11.8.8
  • MariaDB 12.3 updated from 12.3.1 to 12.3.2
  • redis updated from 8.6.3 to 8.8.0

Flexible Exim configuration for not counting local-to-local emails update

Starting with DirectAdmin version 1.702, the Exim mail server configuration is updated to count all emails (including emails delivered locally) into the email send limit.

This release adds a new Exim configuration macro SEND_LIMIT_COUNT_RECIPIENTS, that allows selecting which recipients are counted in the email send limit and which are not. This option allows restoring the old Exim behaviour of not counting emails that will be delivered to the same server.

Default macro definition is SEND_LIMIT_COUNT_RECIPIENTS = $recipients_list. This means all recipients must be counted. Examples for different behaviour:

sh
# Do not count emails where sender and recipient address is from the same
# domain:
sed -i '/^SEND_LIMIT_COUNT_RECIPIENTS /d' /etc/exim.variables.conf.custom
echo 'SEND_LIMIT_COUNT_RECIPIENTS = ${filter{$recipients_list}{ !eq{${domain:$item}}{$sender_address_domain} }}' >> /etc/exim.variables.conf.custom
da build exim_conf


# Backwards compatibility mode, do not count mails that will be delivered
# locally:
sed -i '/^SEND_LIMIT_COUNT_RECIPIENTS /d' /etc/exim.variables.conf.custom
echo 'SEND_LIMIT_COUNT_RECIPIENTS = ${filter{$recipients_list}{ !match_domain{${domain:$item}}{+local_domains} }}' >> /etc/exim.variables.conf.custom
da build exim_conf

IMAPSync import and export page alerts evolutionupdate

Previously, errors were shown as toast notifications which disappeared after a few seconds. After this update, errors will be shown within the page until user dismisses the error.

After a successful migration, users will be redirected to IMAPSync migrations page without a success toast notification.

IMAPSync "Start migration" button loading state evolutionupdate

The "Start migration" button within IMAPSync import and export pages now gets disabled and shows a spinner when a request is already a progress.

Resource usage page evolution update

Resource usage page were refactored to use updated api, improve user experience for viewing historical data for CPU, memory, tasks & disk usage.

Per-user resource usage evolution update

A new "Resource usage" sub-page has been added to user info.

Impersonation flow improvements evolution update

Impersonating yourself and user you're already impersonating no longer allowed.

Admin SSL Settings dialog options and layout update evolutionupdate

The Admin SSL Settings dialog now includes a refreshed layout, updated and grouped options.

Changes include:

  • Added "Notify reseller account on certificate request failures".
  • "Disable auto-renew after certificate request failure" now uses a different response parameter, with no major behavior change.
  • "Fix certificates" is now a simple checkbox.

Update admin_ssl_replace_all_expired_invalid in directadmin.conf update

Drop value 2 for admin_ssl_replace_all_expired_invalid as it is unused.

It may be either enabled or disabled.

API Documentation textarea color in dark mode evolutionfix

Within the "API Documentation" page, when trying out a POST/PATCH/PUT API request, the text inside apparent textarea was indistinguishable from the background.

Close Nginx Unit edit route dialog on submit evolutionfix

When editing a route in Nginx Unit, clicking "Save" now automatically closes the dialog.

IMAPSync validation evolutionfix

Fixed the following problems with validation in IMAPSync import and export pages:

  • pressing enter while focusing an input used to bypass input validation.
  • "User" input field was not validated

System file editor save with root confirmation evolutionfix

When editing a system file, saving with root password confirmation no longer resets your changes. Changes are now saved immediately after successful root password confirmation.

Response for GET /api/search/resources now supports unicode characters.

Unicode characters in FTP management page fix

FTP management page was updated to display unicode characters within table's "account" column.

Plugin manager no HTML escaping in error output evolutionfix

HTML is no longer shown in plugin manager error output and characters such as quotation marks now appear as they should rather than appear as "

Removed "Custom Error Pages" page evolutionremoval

The "Custom Error Pages" page (found in user level, under the "Advanced Features" category) was removed.

Dropped /docs/swagger.json removal

/docs/swagger.json redirect to /static/swagger.json was removed.

Dropped move_user_to_reseller.sh usage removal

The CMD_MOVE_USERS endpoint no longer uses the move_user_to_reseller.sh and custom/move_user_to_reseller.sh scripts.

Any custom user transfer logic in custom/move_user_to_reseller.sh will need to be moved to move_user_to_reseller_(pre|post) hooks.

The "move_user_to_reseller.sh" script has been updated to use the "POST /api/change-user-creator" endpoint.

Removed directadmin.conf fields removal

The following fields have been removed from directadmin.conf: