DocumentationWhat payment methods does Hostednode accept?What are Hostednode's billing cycles?When is the monthly renewal charge generated?When are services suspended for non-payment?When is a service deleted for non-payment?What should you do if a payment method is unavailable?Are all services subject to VAT?Do you issue receipts or invoices?How to create a customer account on HostednodeDo you accept cryptocurrency payments?How to Access DirectAdmin and Explore the Panel’s Main FeaturesHow to Configure PHP for Subdomains and Additional Domains in DirectAdminHow to change the PHP version and settings in DirectAdminHow to Create an Email Account in DirectAdminHow to use the DirectAdmin API with Codex or ClaudeHow to Enable and Use Redis in DirectAdminHow to add a domain alias and use it for email in DirectAdminHow to Add an Additional Domain in DirectAdminHow to Add an Additional User to an Existing Database in DirectAdminHow to configure an autoresponder in DirectAdminHow to Set Up a Vacation Message in DirectAdminHow to Create a Subdomain in DirectAdminHow to Create a Cron Job in DirectAdminHow to create a database and associate its user in DirectAdminHow to Create an FTP Account in DirectAdminHow to Create a Mailing List in DirectAdminHow to create an email forwarder in DirectAdminHow to Create a Site Redirect in DirectAdminHow to Install WordPress with Softaculous WordPress Management in DirectAdminHow to Install WordPress with the DirectAdmin WordPress ManagerHow to Modify MX Records to Use Google Workspace in DirectAdminHow to Review the Web Application Firewall and Create a Rule Exception in DirectAdminHow to Check Account Resource Usage in DirectAdminHow to Use the ClamAV Antivirus from DirectAdminHow to Create Custom DNS Records in DirectAdmin: DKIM, SPF, and DMARCHow to use the built-in terminal in DirectAdmin
TUTORIAL

How to Create Custom DNS Records in DirectAdmin: DKIM, SPF, and DMARC

Add TXT records for DKIM and DMARC and update the existing SPF record in DirectAdmin, checking the domain, each record’s name, and its value.

When an email provider or sending platform asks you to verify your domain, it may give you DNS records. In this guide, you will use DirectAdmin's DNS Management to add DKIM and DMARC TXT records and review an existing SPF record, using fictional data from an email provider.

The server address and name, domain, username, limits, and available tools may vary depending on your service. Use your own hosting login details; the screenshots show a reference interface.

1. Confirm the domain and where its DNS is managed

  • Check the exact domain specified by the provider in the record names. A single-letter difference means a different domain. If the request and the records do not match, confirm which is correct before saving.

  • Confirm that the domain's authoritative DNS is managed by this DirectAdmin service. If it uses another provider's DNS, changes on this screen might have no effect on the Internet; check where you need to manage them.

  • A nameserver in the format ns1… identifies a DNS server. It is not the name or value of a DKIM, SPF, or DMARC TXT record. You do not need to modify NS or MX records to add these TXT records.

  • Have the type, name, full value, and TTL, if specified, of each record ready. Keep a copy of the current value before editing it.

2. Open DNS Management and review existing records

On the DirectAdmin dashboard, go to Account Manager → DNS Management. Check the selected domain before adding or editing records.

The DirectAdmin dashboard zooms in on DNS Management under Account Manager and highlights its icon.
Find Account Manager → DNS Management.

The table shows Name, TTL, Type, and Value. Review the existing TXT records: a value starting with v=spf1 is the SPF record; _dmarc identifies the DMARC policy; a name ending in ._domainkey corresponds to a DKIM selector.

DNS Management table showing the selected domain and existing TXT records.
Review the domain and current TXT records before adding or editing.

If the same name and type you need to configure already exist, review the value and use Edit where appropriate. Do not add duplicate SPF or DMARC records. Different DKIM selectors, such as x._domainkey and demo._domainkey, can coexist; do not delete another service's selector.

3. Fill in Name, TTL, and Value correctly

Click Add Record and choose the requested type. Use TXT in the following three examples. Under TXT Record Type, select Plain to enter the full value provided by the provider.

  • Name: if the form displays the domain as a suffix, enter only the relative part, such as demo._domainkey or _dmarc. For the root domain, keep the full name DirectAdmin suggests when you choose TXT, including the trailing dot: pruebas-hosting.hnd.io. in this example.

  • If you enter a full name in this panel, end it with a dot to indicate that it is absolute. Do not paste a full name without checking the suffix: you could end up with the domain repeated. Do not assume that @ is the required format; use the root name suggested by the panel.

  • TTL: this is the cache duration, in seconds. Keep the default value unless the provider requires a different one. In the screenshots it is 3600, equivalent to one hour; do not use Override TTL Value to change the entire zone as part of this procedure.

  • Value: paste only the requested content, without headings, labels, continuation backslashes, or line breaks introduced when copying from an email. In Plain mode, you can paste the text without surrounding quotation marks; DirectAdmin displays it in quotation marks when saved.

4. Add the DKIM TXT record

DKIM allows the email service to sign messages and recipients to verify that signature using a public key. If the provider supplies a TXT record with the selector demo, fill in these fields:

  • Record Type: TXT.

  • Name: demo._domainkey.

  • TTL: the value specified by the provider or the default value.

  • TXT Record Type: Plain.

  • Value: the complete string supplied by the provider, for example one starting with k=rsa;p= followed by the public key.

Add Record form with type TXT, name demo._domainkey, and the Value field for the public key.
Paste the complete public key into Value and keep the selector specified by the provider.

In the pruebas-hosting.hnd.io zone, the relative name demo._domainkey corresponds to demo._domainkey.pruebas-hosting.hnd.io. The key may visually wrap across several lines within the field; check that it was pasted in full. Do not add ellipses, do not modify the characters, and never publish a private key.

Click Add. Once the panel confirms the save, find the selector's TXT record in the table and check its name and value. If your provider requests CNAME instead of TXT, use exactly the type and target it supplied; do not convert its instructions into a TXT key.

5. Review and update SPF without creating a second record

SPF specifies which servers may send email for the domain used in the SPF check. It is published as a TXT record. Each name must have only one record starting with v=spf1.

A provider may supply this value:

text
v=spf1 include:spf.proveedor.example ~all

If an SPF record already exists, click Edit in its row. If DirectAdmin opens the SPF wizard, change TXT Record Type to Plain and review the full value. Add include:spf.proveedor.example before the final all mechanism, separated by spaces and without repeating it if it is already present.

Simplified example: if the original value is v=spf1 a mx ~all and those mechanisms are still needed, it would become:

text
v=spf1 a mx include:spf.proveedor.example ~all

Keep only one v=spf1 and a single all mechanism at the end. Preserve the policy your domain already uses: if it ends in -all, do not change it to ~all without reviewing the effect. If the record contains redirect= or you do not know how to integrate the current senders, ask for help before modifying it.

Editing an SPF TXT record in Plain mode, preserving existing mechanisms and adding include:spf.proveedor.example before ~all.
Integrate the new include into the existing SPF record and click Save.

Click Save and check that there is still only one SPF record for that name. If no SPF record existed, use Add Record → TXT, keep the root name suggested by DirectAdmin, and paste the policy confirmed for all services that send email from your domain.

SPF limits the terms that trigger DNS lookups during evaluation to ten, including dependencies of other include mechanisms. Do not keep adding services without checking this limit; if you have several providers, request validation of the resulting SPF record.

6. Add or update the DMARC TXT record

DMARC indicates how to handle email that fails its authentication and alignment checks against the domain in the visible sender address. If _dmarc already exists, edit that row instead of creating a second record.

  • Record Type: TXT.

  • Name: _dmarc.

  • TXT Record Type: Plain.

  • TTL: the value specified by the provider or the default.

  • Value: the policy confirmed for your domain.

This is an example of a monitoring policy with aggregate reports:

text
v=DMARC1; p=none; rua=mailto:informes@ejemplo.example
TXT form with the name _dmarc and a DMARC value containing p=none and a rua address for reports.
Enter the policy and a valid reporting address for your domain.

p=none does not request that messages be rejected or quarantined based on DMARC; it allows you to monitor the results. rua specifies where aggregate reports should be requested. Replace the address with an authorized mailbox or service that can receive them: adding the TXT record does not create that email account. If the destination belongs to another domain, additional authorization from the recipient may be required.

Do not change an existing p=quarantine or p=reject policy to p=none just because it appears in an example. Do not make the policy stricter without first reviewing all services that send email. Click Add or Save, as appropriate.

7. Check the result

  • Return to the table and check the name, TXT type, TTL, and value of each record. To review a long value, open Edit, read it in full, and close the form without saving if you do not need to make changes.

  • Confirm that the DKIM selector is the one requested, that there is only one SPF record for the configured name, and only one policy TXT record at _dmarc.

  • Saving confirms the change in the control panel's zone; it does not by itself prove that all Internet resolvers can already see it. Caches may retain previous values according to their TTL.

  • After allowing time for caches to update, request or repeat the provider's validation. If it still fails, first check the exact domain, where its DNS is managed, the name suffix, and the full value.

Adding these records does not by itself guarantee delivery to the inbox. The provider must use DKIM signing and the appropriate sending domains; keep the other website and email records intact.