![]() |
|
Guide CyberPanel Email Forwarding, Catch-All and Plus-Addressing (With 2 Fixes) - Printable Version +- AdminsForum (https://adminsforum.com) +-- Forum: Free & open-source control panels (https://adminsforum.com/Forum-free-open-source-control-panels) +--- Forum: CyberPanel (https://adminsforum.com/Forum-cyberpanel) +---- Forum: CyberPanel Guides & Tutorials (https://adminsforum.com/Forum-cyberpanel-guides-tutorials) +----- Forum: CyberPanel Websites & OpenLiteSpeed Guides (https://adminsforum.com/Forum-cyberpanel-websites-openlitespeed-guides) +----- Thread: Guide CyberPanel Email Forwarding, Catch-All and Plus-Addressing (With 2 Fixes) (/Thread-guide-cyberpanel-email-forwarding-catch-all-and-plus-addressing-with-2-fixes) |
CyberPanel Email Forwarding, Catch-All and Plus-Addressing (With 2 Fixes) - JAY - 10-26-2026 CyberPanel Email Forwarding, Catch-All and Plus-Addressing (With 2 Fixes) Three small email features that people ask about all the time: send a copy of one mailbox to another address, catch mail sent to addresses that don't exist, and accept Code: Our test domain is cyber.adminslab.com with two mailboxes, Code: info@Code: team@1. Forward a mailbox Open Email > Forwarding, pick the website and the mailbox, choose Forward to email, type the destination and click Add Forwarding. The rule shows up in the table below: We forwarded Code: info@Code: team@Does the original mailbox keep a copy? Yes. Then we sent a test message to info@ and read the mail log. One message, two deliveries: Code: journalctl --since "-3min" --no-pager -o cat | grep "to="Code: to=<info@...>Code: to=<team@...>, orig_to=<info@...>Forwarding to Gmail, Outlook and other big providers works, but be careful with spam: when your server forwards a spam message, the receiving provider sees your server sending it. If you forward a busy public address, turn on spam filtering first (Email > SpamAssassin or Rspamd on the same menu). 2. Catch-all address A catch-all receives mail sent to any address at your domain that has no mailbox and no forwarding rule: typos like Code: infp@Open Email > Catch-All, pick the domain, type the destination and click Save Configuration. The box above the form confirms it: Test it with an address that doesn't exist, and with one that does: Code: swaks -s 127.0.0.1 -f [email protected] -t [email protected]
swaks -s 127.0.0.1 -f [email protected] -t [email protected]Code: swaksCode: apt install -y swaksCode: nobody123@Code: team@Code: orig_to=<nobody123@...>Code: info@Should you leave it on? Usually not for long. Spammers send to thousands of guessed names ( Code: admin@Code: sales@3. Plus-addressing (user+tag@domain) With plus-addressing, Code: Code: info@Fix 1: the settings page can't save. When we switched on plus-addressing in Email > Plus-Addressing and clicked Save Global Settings, CyberPanel couldn't write the Postfix config: Code: [Errno 13] Permission denied: '/etc/postfix/main.cf'Code: postconf recipient_delimiterCode: cp /etc/postfix/main.cf /root/main.cf.bak
postconf -e 'recipient_delimiter = +'
systemctl reload postfix
postconf recipient_delimiterCode: recipient_delimiter = +Before the fix, with a catch-all on, Code: info+news@Fix 2: "user unknown" after turning it on. With the delimiter set, our next test bounced: Code: to=<[email protected]>, relay=dovecot, dsn=5.1.1, status=bounced (user unknown)Code: info+news@...Code: /etc/postfix/master.cfCode: flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}Code: cp /etc/postfix/master.cf /root/master.cf.bak
sed -i 's|-d ${recipient}|-d ${user}@${nexthop} -a ${recipient}|' /etc/postfix/master.cf
grep dovecot/deliver /etc/postfix/master.cf
systemctl reload postfixCode: ${user}Code: +Code: ${nexthop}Code: recipient_delimiter = +Code: doveconf recipient_delimiterAfter both fixes, all three cases from one test run: Code: info+news@Code: info@Code: postqueue -pCode: Mail queue is emptyKeep your backups ( Code: /root/main.cf.bakCode: /root/master.cf.bakCode: postconf recipient_delimiterCode: grep dovecot/deliver /etc/postfix/master.cfA note on test mail and bounces When the user-unknown test bounced, Postfix tried to send the bounce back to our made-up sender at another domain, and it sat in the queue. Use one of your own mailboxes as the sender when you test ( Code: Code: postqueue -pCode: postsuper -d QUEUEIDCommon problems
More CyberPanel guides
Tested on CyberPanel 3.0 (build 8, OpenLiteSpeed edition) on Ubuntu 24.04, October 2026. Menu names can change slightly between versions. |