{"id":2539,"date":"2026-02-23T12:16:02","date_gmt":"2026-02-23T12:16:02","guid":{"rendered":"https:\/\/cyberpanel.net\/KnowledgeBase\/domain-verification-dns-setup\/"},"modified":"2026-02-23T12:17:07","modified_gmt":"2026-02-23T12:17:07","slug":"domain-verification-dns-setup","status":"publish","type":"post","link":"https:\/\/cyberpanel.net\/KnowledgeBase\/domain-verification-dns-setup\/","title":{"rendered":"Domain Verification and DNS Setup"},"content":{"rendered":"<style>\n.kb-info-box { background: #e8f4fd; border-left: 4px solid #2196F3; padding: 16px 20px; margin: 20px 0; border-radius: 4px; }\n.kb-info-box.warning { background: #fff8e1; border-left-color: #ff9800; }\n.kb-info-box.success { background: #e8f5e9; border-left-color: #4caf50; }\n.kb-info-box.tip { background: #f3e5f5; border-left-color: #9c27b0; }\n.kb-info-box strong { display: block; margin-bottom: 4px; }\n.kb-table { width: 100%; border-collapse: collapse; margin: 20px 0; }\n.kb-table th, .kb-table td { border: 1px solid #ddd; padding: 10px 14px; text-align: left; }\n.kb-table th { background: #f5f5f5; font-weight: 600; }\n.kb-table tr:nth-child(even) { background: #fafafa; }\n.kb-code { background: #1e1e1e; color: #d4d4d4; padding: 16px 20px; border-radius: 6px; overflow-x: auto; margin: 16px 0; font-size: 14px; line-height: 1.5; }\n.kb-code .comment { color: #6a9955; }\n.kb-code .keyword { color: #569cd6; }\n.kb-code .string { color: #ce9178; }\n<\/style>\n<p>Every domain you use with CyberPanel Email Service must be verified and configured with the correct DNS records. This guide covers setup for both <strong>sending domains<\/strong> (Email Delivery) and <strong>hosted domains<\/strong> (Email Hosting).<\/p>\n<h2>Section A: Sending Domains (Email Delivery)<\/h2>\n<p>Sending domains are used in the <code>From:<\/code> address when sending emails via SMTP or API.<\/p>\n<h3>1. Add Your Domain<\/h3>\n<p>Go to <a href=\"https:\/\/platform.cyberpersons.com\/email\/domains\/\" target=\"_blank\" rel=\"noopener\">https:\/\/platform.cyberpersons.com\/email\/domains\/<\/a> and click <strong>Add Domain<\/strong>. Enter your domain (e.g., <code>yourcompany.com<\/code>).<\/p>\n<h3>2. TXT Verification Record<\/h3>\n<p>Add the verification TXT record shown in the dashboard to prove you own the domain:<\/p>\n<table class=\"kb-table\">\n<tr>\n<th>Type<\/th>\n<th>Name\/Host<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td><code>yourcompany.com<\/code> (or <code>@<\/code>)<\/td>\n<td><em>Your unique verification token (shown in dashboard)<\/em><\/td>\n<\/tr>\n<\/table>\n<h3>3. SPF Record<\/h3>\n<p>SPF tells receiving servers which IPs are authorized to send email for your domain.<\/p>\n<table class=\"kb-table\">\n<tr>\n<th>Type<\/th>\n<th>Name\/Host<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td><code>yourcompany.com<\/code> (or <code>@<\/code>)<\/td>\n<td><code>v=spf1 include:spf.cyberpersons.com ~all<\/code><\/td>\n<\/tr>\n<\/table>\n<div class=\"kb-info-box\"><strong>Already have an SPF record?<\/strong> Add <code>include:spf.cyberpersons.com<\/code> before the <code>~all<\/code> or <code>-all<\/code> in your existing record. Example: <code>v=spf1 include:_spf.google.com include:spf.cyberpersons.com ~all<\/code><\/div>\n<h3>4. DKIM Record<\/h3>\n<p>DKIM cryptographically signs your emails so recipients can verify they haven&#8217;t been tampered with.<\/p>\n<table class=\"kb-table\">\n<tr>\n<th>Type<\/th>\n<th>Name\/Host<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td><code>postal._domainkey.yourcompany.com<\/code><\/td>\n<td><em>DKIM public key (shown in dashboard)<\/em><\/td>\n<\/tr>\n<\/table>\n<div class=\"kb-info-box warning\"><strong>Long TXT records:<\/strong> Some DNS providers require you to split the DKIM value into 255-character chunks enclosed in quotes. If your record doesn&#8217;t verify, check with your DNS provider for their specific format.<\/div>\n<h3>5. DMARC Record<\/h3>\n<p>DMARC tells receiving servers what to do if SPF or DKIM checks fail.<\/p>\n<table class=\"kb-table\">\n<tr>\n<th>Type<\/th>\n<th>Name\/Host<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td><code>_dmarc.yourcompany.com<\/code><\/td>\n<td><code>v=DMARC1; p=quarantine; rua=mailto:dmarc@yourcompany.com<\/code><\/td>\n<\/tr>\n<\/table>\n<h2>Section B: Hosted Domains (Email Hosting)<\/h2>\n<p>Hosted domains need the same records as sending domains, <strong>plus an MX record<\/strong> to route incoming email to our servers.<\/p>\n<h3>MX Record (Required for Receiving Email)<\/h3>\n<table class=\"kb-table\">\n<tr>\n<th>Type<\/th>\n<th>Name\/Host<\/th>\n<th>Value<\/th>\n<th>Priority<\/th>\n<\/tr>\n<tr>\n<td>MX<\/td>\n<td><code>yourcompany.com<\/code> (or <code>@<\/code>)<\/td>\n<td><code>mail.cyberpersons.com<\/code><\/td>\n<td>10<\/td>\n<\/tr>\n<\/table>\n<div class=\"kb-info-box warning\"><strong>Important:<\/strong> Remove any existing MX records pointing to other providers (e.g., Google Workspace, Microsoft 365) unless you want split delivery.<\/div>\n<h3>Full DNS Setup for Hosted Domains<\/h3>\n<table class=\"kb-table\">\n<tr>\n<th>Record<\/th>\n<th>Type<\/th>\n<th>Name<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>Verification<\/td>\n<td>TXT<\/td>\n<td><code>@<\/code><\/td>\n<td><em>(shown in dashboard)<\/em><\/td>\n<\/tr>\n<tr>\n<td>Mail Server<\/td>\n<td>MX<\/td>\n<td><code>@<\/code><\/td>\n<td><code>mail.cyberpersons.com<\/code> (priority 10)<\/td>\n<\/tr>\n<tr>\n<td>SPF<\/td>\n<td>TXT<\/td>\n<td><code>@<\/code><\/td>\n<td><code>v=spf1 include:spf.cyberpersons.com ~all<\/code><\/td>\n<\/tr>\n<tr>\n<td>DKIM<\/td>\n<td>TXT<\/td>\n<td><code>mail._domainkey<\/code><\/td>\n<td><em>(shown in dashboard)<\/em><\/td>\n<\/tr>\n<tr>\n<td>DMARC<\/td>\n<td>TXT<\/td>\n<td><code>_dmarc<\/code><\/td>\n<td><code>v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com<\/code><\/td>\n<\/tr>\n<\/table>\n<div class=\"kb-info-box tip\"><strong>Note:<\/strong> For hosted domains, the DKIM selector is <code>mail<\/code> (record name: <code>mail._domainkey.yourdomain.com<\/code>). For sending-only domains, the selector is <code>postal<\/code>.<\/div>\n<h2>DNS Provider Examples<\/h2>\n<h3>Cloudflare<\/h3>\n<ol>\n<li>Log into Cloudflare &rarr; select your domain &rarr; DNS<\/li>\n<li>Click <strong>Add record<\/strong> for each record above<\/li>\n<li>For TXT records: set Name to <code>@<\/code>, paste the value<\/li>\n<li>For MX: set Name to <code>@<\/code>, Mail server to <code>mail.cyberpersons.com<\/code>, Priority to <code>10<\/code><\/li>\n<li><strong>Cloudflare Auto-Integration:<\/strong> If you connect your Cloudflare account in the Email Hosting dashboard, DNS records are configured automatically!<\/li>\n<\/ol>\n<h3>GoDaddy<\/h3>\n<ol>\n<li>Go to My Products &rarr; DNS &rarr; Manage<\/li>\n<li>Click <strong>Add<\/strong> to create each record<\/li>\n<li>For TXT records: Host = <code>@<\/code>, TXT Value = your record value<\/li>\n<li>For MX: Host = <code>@<\/code>, Points to = <code>mail.cyberpersons.com<\/code>, Priority = <code>10<\/code><\/li>\n<\/ol>\n<h3>Namecheap<\/h3>\n<ol>\n<li>Go to Domain List &rarr; Manage &rarr; Advanced DNS<\/li>\n<li>Click <strong>Add New Record<\/strong> for each record<\/li>\n<li>For TXT records: Host = <code>@<\/code>, Value = your record value<\/li>\n<li>For MX: Host = <code>@<\/code>, Value = <code>mail.cyberpersons.com<\/code>, Priority = <code>10<\/code><\/li>\n<\/ol>\n<h2>Troubleshooting DNS Propagation<\/h2>\n<ul>\n<li><strong>Propagation time:<\/strong> DNS changes typically take 5&ndash;30 minutes, but can take up to 48 hours in rare cases.<\/li>\n<li><strong>Check propagation:<\/strong> Use <a href=\"https:\/\/www.whatsmydns.net\/\" target=\"_blank\" rel=\"noopener\">whatsmydns.net<\/a> to verify your records have propagated globally.<\/li>\n<li><strong>Verification still failing?<\/strong> Click <strong>Re-verify<\/strong> in the dashboard after confirming records are visible via whatsmydns.net.<\/li>\n<li><strong>Conflicting SPF records:<\/strong> You can only have one SPF record per domain. Merge multiple <code>include:<\/code> directives into a single record.<\/li>\n<\/ul>\n<h2>Related Guides<\/h2>\n<ul>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/email-service-documentation\/\">Documentation Hub<\/a><\/li>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/getting-started-email-delivery\/\">Getting Started with Email Delivery<\/a><\/li>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/getting-started-email-hosting\/\">Getting Started with Email Hosting<\/a><\/li>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/sending-email-smtp\/\">Sending Email via SMTP<\/a><\/li>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/sending-email-rest-api\/\">Sending Email via REST API<\/a><\/li>\n<li><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/improving-email-deliverability\/\">Improving Email Deliverability<\/a><\/li>\n<\/ul>\n<p><a href=\"https:\/\/cyberpanel.net\/KnowledgeBase\/email-service-documentation\/\">&larr; Back to Documentation Hub<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every domain you use with CyberPanel Email Service must be verified and configured with the correct DNS records. This guide covers setup for both sending domains (Email Delivery) and hosted domains (Email Hosting). Section A: Sending Domains (Email Delivery) Sending domains are used in the From: address when sending emails via SMTP or API. 1. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108],"tags":[],"class_list":["post-2539","post","type-post","status-publish","format-standard","hentry","category-email-service"],"_links":{"self":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts\/2539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/comments?post=2539"}],"version-history":[{"count":3,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts\/2539\/revisions"}],"predecessor-version":[{"id":2581,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts\/2539\/revisions\/2581"}],"wp:attachment":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/media?parent=2539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/categories?post=2539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/tags?post=2539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}