{"id":2593,"date":"2026-03-05T19:10:38","date_gmt":"2026-03-05T19:10:38","guid":{"rendered":"https:\/\/cyberpanel.net\/KnowledgeBase\/cybermail-setup-guide\/"},"modified":"2026-03-05T19:10:38","modified_gmt":"2026-03-05T19:10:38","slug":"cybermail-setup-guide","status":"publish","type":"post","link":"https:\/\/cyberpanel.net\/KnowledgeBase\/cybermail-setup-guide\/","title":{"rendered":"CyberMail Email Delivery \u2014 Setup &#038; Administration Guide"},"content":{"rendered":"<h1 id=\"cybermail-email-delivery-setup-administration-guide\">CyberMail Email Delivery \u2014 Setup &amp; Administration Guide<\/h1>\n<p><strong>Feature<\/strong>: CyberMail Email Delivery Integration<br \/>\n<strong>CyberPanel Version<\/strong>: 2.4.5+<br \/>\n<strong>Platform<\/strong>: https:\/\/platform.cyberpersons.com<br \/>\n<strong>Last Updated<\/strong>: 2026-03-06<\/p>\n<h2 id=\"prerequisites\">Prerequisites<\/h2>\n<ol>\n<li>CyberPanel 2.4.5 or later installed<\/li>\n<li>Active internet connection from the server<\/li>\n<li>PowerDNS running (for automatic DNS configuration)<\/li>\n<li>Postfix installed (for SMTP relay feature)<\/li>\n<\/ol>\n<hr \/>\n<h2 id=\"installation\">Installation<\/h2>\n<p>The CyberMail module is included in CyberPanel 2.4.5+. No separate installation needed.<\/p>\n<h3 id=\"verify-the-module\">Verify the Module<\/h3>\n<pre><code class=\"language-bash\"># Check the app exists\nls \/usr\/local\/CyberCP\/emailDelivery\/\n\n# Check it's in INSTALLED_APPS\ngrep -n &quot;emailDelivery&quot; \/usr\/local\/CyberCP\/CyberCP\/settings.py\n\n# Run migrations if needed\ncd \/usr\/local\/CyberCP\npython manage.py migrate emailDelivery\n<\/code><\/pre>\n<h3 id=\"database-tables\">Database Tables<\/h3>\n<p>The module creates two tables:<\/p>\n<table>\n<thead>\n<tr>\n<th>Table<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>cybermail_accounts<\/code><\/td>\n<td>Stores per-admin CyberMail account connections<\/td>\n<\/tr>\n<tr>\n<td><code>cybermail_domains<\/code><\/td>\n<td>Tracks sending domains and their verification status<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 id=\"getting-started\">Getting Started<\/h2>\n<h3 id=\"step-1-access-cybermail\">Step 1: Access CyberMail<\/h3>\n<p>Navigate to: <strong>https:\/\/your-server:8090\/emailDelivery\/<\/strong><\/p>\n<p>You&#8217;ll see the CyberMail marketing page with plan information and a &#8220;Get Started Free&#8221; button.<\/p>\n<h3 id=\"step-2-connect-your-account\">Step 2: Connect Your Account<\/h3>\n<ol>\n<li>Click <strong>&#8220;Get Started Free&#8221;<\/strong><\/li>\n<li>Enter your email address (defaults to your CyberPanel admin email)<\/li>\n<li>Create a password for your CyberMail account<\/li>\n<li>Click <strong>Connect<\/strong><\/li>\n<\/ol>\n<p>This registers your account on the CyberMail platform and obtains an API key that&#8217;s stored locally for future API calls.<\/p>\n<blockquote>\n<p><strong>Note<\/strong>: If you already have a CyberMail account on the platform, use the same email and password. The system will link your existing account.<\/p>\n<\/blockquote>\n<h3 id=\"step-3-add-sending-domains\">Step 3: Add Sending Domains<\/h3>\n<ol>\n<li>After connecting, you&#8217;ll see the dashboard<\/li>\n<li>Go to the <strong>Domains<\/strong> tab<\/li>\n<li>Click <strong>&#8220;Add Domain&#8221;<\/strong><\/li>\n<li>Enter your domain name (e.g., <code>example.com<\/code>)<\/li>\n<li>Click <strong>Add<\/strong><\/li>\n<\/ol>\n<p>The system will:<br \/>\n&#8211; Register the domain on the CyberMail platform<br \/>\n&#8211; Automatically create SPF, DKIM, and DMARC DNS records in PowerDNS<br \/>\n&#8211; Report how many DNS records were configured<\/p>\n<h3 id=\"step-4-verify-domain\">Step 4: Verify Domain<\/h3>\n<ol>\n<li>Click <strong>&#8220;Verify&#8221;<\/strong> next to your domain<\/li>\n<li>The system checks SPF, DKIM, and DMARC records<\/li>\n<li>Green checkmarks appear for each verified record<\/li>\n<li>Status changes to &#8220;Verified&#8221; when all records pass<\/li>\n<\/ol>\n<blockquote>\n<p><strong>DNS Propagation<\/strong>: If verification fails immediately after adding, wait 5-10 minutes for DNS propagation and try again.<\/p>\n<\/blockquote>\n<h3 id=\"step-5-enable-smtp-relay-optional\">Step 5: Enable SMTP Relay (Optional)<\/h3>\n<p>The SMTP relay routes ALL outgoing email from your server through CyberMail:<\/p>\n<ol>\n<li>Go to the <strong>Relay<\/strong> tab<\/li>\n<li>Click <strong>&#8220;Enable Relay&#8221;<\/strong><\/li>\n<li>The system will:<\/li>\n<li>Create (or rotate) SMTP credentials on the platform<\/li>\n<li>Configure Postfix with the relay host (<code>mail.cyberpersons.com:587<\/code>)<\/li>\n<li>Set up SASL authentication<\/li>\n<li>Enable TLS encryption<\/li>\n<\/ol>\n<p><strong>What gets configured in Postfix<\/strong> (<code>\/etc\/postfix\/main.cf<\/code>):<\/p>\n<pre><code>relayhost = [mail.cyberpersons.com]:587\nsmtp_sasl_auth_enable = yes\nsmtp_sasl_password_maps = hash:\/etc\/postfix\/sasl_passwd\nsmtp_sasl_security_options = noanonymous\nsmtp_tls_security_level = encrypt\n<\/code><\/pre>\n<hr \/>\n<h2 id=\"dashboard-overview\">Dashboard Overview<\/h2>\n<p>After connecting, the dashboard provides five tabs:<\/p>\n<h3 id=\"domains-tab\">Domains Tab<\/h3>\n<ul>\n<li>Lists all sending domains with verification status<\/li>\n<li>SPF, DKIM, DMARC status badges (green = verified)<\/li>\n<li>Actions: Verify, Auto-Configure DNS, Remove<\/li>\n<li>DNS auto-configuration works when the domain exists in PowerDNS<\/li>\n<\/ul>\n<h3 id=\"smtp-tab\">SMTP Tab<\/h3>\n<ul>\n<li>Manage SMTP credentials for sending<\/li>\n<li>Create new credentials with descriptions<\/li>\n<li>Rotate passwords (one-time display)<\/li>\n<li>Delete unused credentials<\/li>\n<\/ul>\n<h3 id=\"relay-tab\">Relay Tab<\/h3>\n<ul>\n<li>Shows current relay status (Enabled\/Disabled)<\/li>\n<li>Displays relay host and port<\/li>\n<li>Enable\/Disable toggle<\/li>\n<li>Relay info: <code>mail.cyberpersons.com:587<\/code> with STARTTLS<\/li>\n<\/ul>\n<h3 id=\"logs-tab\">Logs Tab<\/h3>\n<ul>\n<li>Paginated delivery logs<\/li>\n<li>Filter by: Status (delivered\/bounced\/failed), Days (1-30)<\/li>\n<li>Shows: Date, From, To, Subject, Status<\/li>\n<li>Color-coded status badges<\/li>\n<\/ul>\n<h3 id=\"stats-tab\">Stats Tab<\/h3>\n<ul>\n<li>Aggregate stats: Total Sent, Delivered, Bounced, Failed, Delivery Rate<\/li>\n<li>Per-domain breakdown table<\/li>\n<li>Useful for identifying domains with deliverability issues<\/li>\n<\/ul>\n<hr \/>\n<h2 id=\"plans-pricing\">Plans &amp; Pricing<\/h2>\n<table>\n<thead>\n<tr>\n<th>Plan<\/th>\n<th>Price<\/th>\n<th>Emails\/Month<\/th>\n<th>Features<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Free<\/strong><\/td>\n<td>$0<\/td>\n<td>15,000<\/td>\n<td>Shared infrastructure, basic analytics<\/td>\n<\/tr>\n<tr>\n<td><strong>Starter<\/strong><\/td>\n<td>$15\/mo<\/td>\n<td>100,000<\/td>\n<td>Priority support, advanced analytics<\/td>\n<\/tr>\n<tr>\n<td><strong>Professional<\/strong><\/td>\n<td>$90\/mo<\/td>\n<td>500,000<\/td>\n<td>Dedicated IPs, custom DKIM, webhooks<\/td>\n<\/tr>\n<tr>\n<td><strong>Enterprise<\/strong><\/td>\n<td>$299\/mo<\/td>\n<td>2,000,000<\/td>\n<td>SLA guarantee, account manager, custom limits<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Upgrade at: https:\/\/platform.cyberpersons.com<\/p>\n<hr \/>\n<h2 id=\"promotional-banners\">Promotional Banners<\/h2>\n<p>CyberMail banners appear on email-related pages to inform users about the delivery service:<\/p>\n<ul>\n<li>Mail Functions (<code>\/mailServer\/<\/code>)<\/li>\n<li>Create Email Account<\/li>\n<li>DKIM Manager<\/li>\n<li>Webmail<\/li>\n<li>Email Premium<\/li>\n<li>Email Marketing<\/li>\n<\/ul>\n<p>Banners are dismissible with a 7-day cookie-based suppression. They show:<br \/>\n&#8211; &#8220;Stop Landing in Spam&#8221; headline<br \/>\n&#8211; Brief feature description<br \/>\n&#8211; &#8220;Get Started Free&#8221; CTA linking to <code>\/emailDelivery\/<\/code><\/p>\n<hr \/>\n<h2 id=\"disconnecting\">Disconnecting<\/h2>\n<ol>\n<li>Go to <strong>https:\/\/your-server:8090\/emailDelivery\/<\/strong><\/li>\n<li>Click the <strong>&#8220;Disconnect&#8221;<\/strong> button<\/li>\n<li>Confirm the action<\/li>\n<\/ol>\n<p>Disconnecting will:<br \/>\n&#8211; Disable SMTP relay if active (remove Postfix relay config)<br \/>\n&#8211; Clear the stored API key<br \/>\n&#8211; Remove local domain records<br \/>\n&#8211; Reset SMTP credential references<\/p>\n<blockquote>\n<p><strong>Note<\/strong>: Your CyberMail platform account is NOT deleted. You can reconnect later with the same credentials.<\/p>\n<\/blockquote>\n<hr \/>\n<h2 id=\"troubleshooting\">Troubleshooting<\/h2>\n<h3 id=\"account-not-connected-error\">&#8220;Account not connected&#8221; error<\/h3>\n<p>The admin session doesn&#8217;t have an active CyberMail connection. Click &#8220;Get Started Free&#8221; to connect.<\/p>\n<h3 id=\"dns-records-not-auto-configured\">DNS records not auto-configured<\/h3>\n<ul>\n<li>The domain must exist in PowerDNS on this server<\/li>\n<li>Check if the domain was created via CyberPanel&#8217;s DNS management<\/li>\n<li>If using external DNS, add records manually using the DNS records shown on the platform<\/li>\n<\/ul>\n<h3 id=\"domain-verification-failing\">Domain verification failing<\/h3>\n<ul>\n<li>Wait 5-10 minutes after DNS changes for propagation<\/li>\n<li>Verify records exist: <code>dig TXT example.com +short<\/code><\/li>\n<li>Check for conflicting SPF records (only one SPF record allowed per domain)<\/li>\n<\/ul>\n<h3 id=\"smtp-relay-not-working\">SMTP relay not working<\/h3>\n<ul>\n<li>Check Postfix status: <code>systemctl status postfix<\/code><\/li>\n<li>Verify relay config: <code>grep relayhost \/etc\/postfix\/main.cf<\/code><\/li>\n<li>Check SASL credentials: <code>cat \/etc\/postfix\/sasl_passwd<\/code><\/li>\n<li>Test connectivity: <code>telnet mail.cyberpersons.com 587<\/code><\/li>\n<li>Check mail queue: <code>mailq<\/code><\/li>\n<li>View Postfix logs: <code>tail -f \/var\/log\/mail.log<\/code><\/li>\n<\/ul>\n<h3 id=\"relay-shows-failed-to-configure\">Relay shows &#8220;Failed to configure&#8221;<\/h3>\n<ul>\n<li>Ensure <code>\/usr\/local\/CyberCP\/plogical\/mailUtilities.py<\/code> has the <code>configureRelayHost<\/code> method<\/li>\n<li>Check file permissions on <code>\/etc\/postfix\/sasl_passwd<\/code><\/li>\n<li>Verify Postfix is installed and running<\/li>\n<\/ul>\n<h3 id=\"emails-still-going-to-spam\">Emails still going to spam<\/h3>\n<ol>\n<li>Verify all DNS records (SPF, DKIM, DMARC) are green<\/li>\n<li>Check your domain&#8217;s reputation at https:\/\/www.mail-tester.com<\/li>\n<li>Ensure you&#8217;re not sending to purchased\/scraped lists<\/li>\n<li>Consider upgrading to a plan with dedicated IPs<\/li>\n<\/ol>\n<hr \/>\n<h2 id=\"file-reference\">File Reference<\/h2>\n<table>\n<thead>\n<tr>\n<th>File<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>emailDelivery\/emailDeliveryManager.py<\/code><\/td>\n<td>Core business logic, platform API calls<\/td>\n<\/tr>\n<tr>\n<td><code>emailDelivery\/models.py<\/code><\/td>\n<td>Database models (CyberMailAccount, CyberMailDomain)<\/td>\n<\/tr>\n<tr>\n<td><code>emailDelivery\/views.py<\/code><\/td>\n<td>Django view functions (thin wrappers)<\/td>\n<\/tr>\n<tr>\n<td><code>emailDelivery\/urls.py<\/code><\/td>\n<td>URL routing (18 endpoints)<\/td>\n<\/tr>\n<tr>\n<td><code>emailDelivery\/static\/emailDelivery\/emailDelivery.js<\/code><\/td>\n<td>AngularJS controller<\/td>\n<\/tr>\n<tr>\n<td><code>emailDelivery\/templates\/emailDelivery\/index.html<\/code><\/td>\n<td>Single-page template (marketing + dashboard)<\/td>\n<\/tr>\n<tr>\n<td><code>plogical\/mailUtilities.py<\/code><\/td>\n<td>Postfix relay configuration (configureRelayHost\/removeRelayHost)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2 id=\"security\">Security<\/h2>\n<ul>\n<li>API keys are stored per-admin in the local database, never in config files<\/li>\n<li>All platform API calls use HTTPS with Bearer token authentication<\/li>\n<li>SMTP credentials use SASL over TLS (STARTTLS on port 587)<\/li>\n<li>SASL password file is chmod 600 (root-only readable)<\/li>\n<li>Session-based authentication with CSRF protection on all endpoints<\/li>\n<li>Passwords are never stored locally \u2014 only on the platform<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>CyberMail Email Delivery \u2014 Setup &amp; Administration Guide Feature: CyberMail Email Delivery Integration CyberPanel Version: 2.4.5+ Platform: https:\/\/platform.cyberpersons.com Last Updated: 2026-03-06 Prerequisites CyberPanel 2.4.5 or later installed Active internet connection from the server PowerDNS running (for automatic DNS configuration) Postfix installed (for SMTP relay feature) Installation The CyberMail module is included in CyberPanel 2.4.5+. No [&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-2593","post","type-post","status-publish","format-standard","hentry","category-email-service"],"_links":{"self":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts\/2593","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=2593"}],"version-history":[{"count":0,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/posts\/2593\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/media?parent=2593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/categories?post=2593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyberpanel.net\/KnowledgeBase\/wp-json\/wp\/v2\/tags?post=2593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}