Product updates

DirectAdmin and WHMCS: what Makli reads and changes

43 DirectAdmin actions for WHMCS hosts: account status, PHP logs, mail delivery, DNS, SSL and backups. What runs on its own and what waits for you.

DirectAdmin and WHMCS: what Makli reads and changes
Key points
  • Makli has 43 DirectAdmin actions: 18 that only read and 25 that change something.
  • Reads run on their own; changes start on Ask me first; suspending, restoring a backup and deleting a mailbox or DNS record start Off.
  • Every domain is checked live against the client's own DirectAdmin account before anything is read or changed.
  • File work goes through DirectAdmin's file manager API as the account itself, so it stays inside that account's home folder.

"The contact form says sent, but nothing reaches our Google Workspace inbox." On a DirectAdmin server, one common cause is a single per-domain setting: the server still treats the domain's mail as its own, so mail from the website never leaves for Google. Makli does that first round of looking through DirectAdmin's own API and brings the evidence to the ticket. This is the third panel in the series, after cPanel and Plesk.

Which account Makli works on

Makli starts from the client's hosting services in WHMCS, which give it the server and the DirectAdmin username. With several DirectAdmin services, it matches the domain the client mentions, or asks which one.

Before acting, Makli asks DirectAdmin for the account's domains, live, and checks the domain in the ticket against that list. If the domain is not on the account, nothing is read or changed; if the client says it is theirs, the ticket goes to your team. If DirectAdmin cannot be asked, Makli stops: an ownership check that could not run counts as a no.

For a domain that is on none of the client's services, Makli can look it up on every DirectAdmin server your WHMCS lists before anyone replies "that domain is not hosted with us". If it sits on someone else's account, the reply only says so; that account's name and details are never shown.

What it reads

18 of the 43 DirectAdmin actions only read. They run automatically by default:

AreaWhat Makli can see
AccountActive or suspended, package, domains and subdomains, disk space, bandwidth and file count against the limits, cron jobs
WebsiteThe newest PHP error_log and debug.log files with a summary of fatal errors, the PHP version in use and the versions installed, a WordPress install's version, theme, plugins, maintenance mode and debug settings
EmailMailboxes, forwarders, and recent delivered, deferred and failed messages with the receiving server's reason
Files and databasesFolder listings and file search, text files such as .htaccess or wp-config.php, databases, FTP accounts
DNS, SSL and backupsZone records, certificates with their expiry dates and any names without one, the backup files stored in the account

Passwords and keys in files and logs are replaced with a marker before Makli sees them. Eight reads (mailboxes, forwarders, delivery records, databases, cron jobs, FTP accounts, file listings and file contents) are shown only to a verified account holder. One limit: DirectAdmin has no documented API for the web server's own error and access logs, so Makli does not read them, and says so instead of guessing.

Why did this email bounce?

SPF record includes the mail server
DKIM signature verifies
DMARC policy published
Receiver blocks the server IP (550 5.7.1)
Hand-over to your team with the evidence
A mail ticket on DirectAdmin: read the records and the delivery log before proposing a change.

Mail that leaves the server but never arrives

DirectAdmin decides per domain whether the server accepts the domain's mail itself (local) or hands it to the MX hosts (remote), such as Google Workspace or Microsoft 365. If a client moved their mail to Google but the setting still says local, mail from the website, or from other accounts on the same server, never reaches Google.

Makli can switch this setting for the client's own domain. DirectAdmin has no API that reports the current value, so Makli does not pretend to know it: the result shows the MX records in your zone, warns when they still point at the domain itself after a switch to remote, and asks the client for a test message before anyone calls it fixed.

What it can change, and how each change is checked

The other 25 actions change something: create a mailbox, forwarder, subdomain, database or FTP account, change a quota, reset a password, add a DNS record, switch PHP, issue a Let's Encrypt certificate, start a backup, edit a file. New passwords are generated and shared once.

PHP version: only what is installed

Makli maps "PHP 8.2" to a version in DirectAdmin's PHP selector; if it is not installed, nothing changes and the reply lists what is. If the selector is off on the server, Makli says so. After the switch it reads the version back; if the new one does not show, the reply says DirectAdmin accepted the change, not that it is done.

Files: through the account itself

Makli calls DirectAdmin's file manager API as the account, so DirectAdmin keeps every request inside that account's home folder. Edits follow the same rules as on cPanel and Plesk: text files up to 1 MB, a checked backup copy before anything is written, the new content read back, nothing deleted. A broken WordPress plugin is switched off by renaming its folder, and any edit can be undone from Makli's backup. An older DirectAdmin without this API gets a clear "not supported on this server".

DNS, SPF, DKIM and DMARC

Makli can add an A, AAAA, CNAME, MX or TXT record to the client's own zone. It reads the zone first, leaves an identical record alone, and reads it again afterwards. Deleting needs an exact match on type, name and value; if several match, Makli asks which. A record in your zone only counts if the domain uses your nameservers.

The SPF fix keeps the existing entries, adds the sending server and the mail provider's include when missing, merges duplicates and refuses anything over the 10-lookup limit; the old record is put back if the new one cannot be added. DKIM is switched on per domain. DMARC is added only where there is none, starting at p=none. When the DNS is hosted elsewhere, the client gets the exact record to add there.

Suspensions and backups

Makli lifts a suspension only when DirectAdmin records it as an ordinary billing suspension. One for abuse, by an administrator or with no recorded reason goes to your team. Restoring a backup overwrites current files, mail and databases; if you turn it on, Makli uses only a backup file that exists in the account, and can restore just some parts, such as the databases.

Who decides

Signed requests Verified owner Ask me first Audit trail
A change on a DirectAdmin account needs a verified client and, by default, your approval.

Every change starts on Ask me first: on a ticket, the action waits in your approval queue and no reply goes out until someone on your team decides. In live chat, changes are not run by default; the client is offered a ticket. Four actions start Off: suspending an account, deleting a mailbox, deleting a DNS record and restoring a backup.

Changes need a verified client. Two repairs, lifting a billing suspension and issuing a Let's Encrypt certificate, may also be done for a sender Makli has identified as the account holder but not fully verified. A client locked out of the panel can get a one-time DirectAdmin login link that expires after 30 minutes. You can change each mode, one action at a time. More in how Makli keeps your WHMCS safe and on the security page.

Setup. Makli uses the DirectAdmin servers and hosting services already set up in your WHMCS: each service points it to the right server and account. Lifting a suspension needs admin or reseller login details on the WHMCS server record.

Want to see it on your own DirectAdmin tickets? Test Makli runs on your real tickets, only reads, and changes nothing. Start free and judge its answers before it replies to anyone.