Here, this should save anyone trying to setup aliases like 2 hours. The tl;dr is that they aren't in aliases.
Also, mad pros to https://sqlitebrowser.org/dl/
That lets you open SQL. lite .db files on Windows. Heres his crazy expensive Patreon (: https://www.patreon.com/db4s
... 162.9/month? Bro had to miss the decimal, lol)
That's a fair point—it took pages to diagnose because we had to look under every digital rock!
The core original issue was that your mail server was rejecting external email because the system was configured to check a database for valid addresses, and neither the alias nor the domain existed in that database yet.
Here is a summary you can use for the aaPanel forums, starting with the original error and the underlying cause.
Summary of Postfix Alias Fix for aaPanel/SQLite
The original issue was the Postfix error: 550 5.1.1 "User unknown in virtual mailbox table" when attempting to set up a new alias, specifically abuse@fullpriceexit.com.
The Core Problem (The "Why")
The root cause was a conflict between how the Linux operating system handles mail and how the aaPanel/Dovecot/Postfix setup handles mail:
You were using the wrong system: The original alias was created in the standard Linux system file (/etc/aliases), which Postfix only checks for local domains (domains listed in the mydestination setting).
The system uses virtual maps: Your configuration showed that all mail for fullpriceexit.com was routed as a virtual domain (since mydestination was empty). This means Postfix completely ignores /etc/aliases and relies entirely on external database files defined by virtual_alias_maps and virtual_mailbox_maps (which pointed to the SQLite DB).
The alias was missing: Postfix checked the SQLite database's alias table and found no entry for abuse@fullpriceexit.com, causing the immediate rejection.
<hr>
The Fix (The "How")
The solution was to bypass the /etc/aliases file and manually insert the alias into the exact SQLite table that Postfix was configured to query.
Database Identification: We confirmed the relevant database was /www/vmail/postfixadmin.db, and the table for redirects was named alias.
Schema Confirmation: We used the .schema alias command to confirm the structure of the alias table.
Alias Insertion: We inserted the redirect, ensuring we included all required fields, especially the domain name and the active status:
SQL
sqlite3 /www/vmail/postfixadmin.db
INSERT INTO alias (address, goto, domain, created, modified, active)
VALUES ('abuse@fullpriceexit.com', 'admin@fullpriceexit.com', 'fullpriceexit.com', datetime('now'), datetime('now'), 1);
.quit
Final Steps: After insertion, we successfully got internal mail working, then resolved the external issue by confirming that the MX records were missing from the domain's DNS settings.
The key takeaway is that in an aaPanel/virtual mail environment, all mail-related configurations (aliases, mailboxes) must be managed through the plugin's database (or the aaPanel interface), not the standard Linux configuration files.
Here is some extra info on Berkey DB on Windows for the curious. (Note: you can save an hour an verify that there is an alias in the file (that won't workread above) You can open the file plan text in Notepad or VSCode and see the strings as plain text.
If you want to view the OTHER db files on Windows, they are Berkley DB files. Unless you have an account with Oracle don't bother to make one because they'll take all day to get you approved for "export restrictions". Get WSL (linux subsystem), WinKey+R, cmd, WS'L.
tibberous@Envy:/mnt/c/Users/moren$ sudo apt update -y
tibberous@Envy:/mnt/c/Users/moren$ sudo apt install db-util
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
db5.3-util
The following NEW packages will be installed:
db-util db5.3-util
0 upgraded, 2 newly installed, 0 to remove and 335 not upgraded.
Need to get 68.0 kB of archives.
After this operation, 338 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 db5.3-util amd64 5.3.28+dfsg1-0.6ubuntu2 [65.3 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/main amd64 db-util all 1:5.3.21exp1ubuntu2 [2718 B]
Fetched 68.0 kB in 1s (111 kB/s)
Selecting previously unselected package db5.3-util.
.... *make coffee * .....
usage: db_dump [-klNprRV]
[-d ahr] [-f output] [-h home] [-P password] [-s database] db_file
usage: db_dump [-kNpV] [-d ahr] [-f output] [-h home] -m database
tibberous@Envy:/mnt/c/Users/moren$ cd c:\
/
-bash: cd: c:/: No such file or directory
use forward slashes because windows is pretending to be *nux
tibberous@Envy:/mnt/c/Users/moren$ cd:/
-bash: cd:/: No such file or directory
tibberous@Envy:/mnt/c/Users/moren$ ls
BullseyeCoverageError.txt
Contacts
Cookies
'Creative Cloud Files'
Desktop
Documents
Downloads
- porn
tibberous@Envy:/mnt/c/Users/moren$ cd ..
tibberous@Envy:/mnt/c/Users$ ls
'All Users' Default 'Default User' Public desktop.ini moren
tibberous@Envy:/mnt/c/Users$ cd ..
tibberous@Envy:/mnt/c$ cd ..
tibberous@Envy:/mnt$ ls
c z
tibberous@Envy:/mnt$ cd c
tibberous@Envy:/mnt/c$ ls
ls: cannot access 'DumpStack.log.tmp': Permission denied
ls: cannot access 'hiberfil.sys': Permission denied
Forward slashes
tibberous@Envy:/mnt/c$ cd "Users\moren\Desktop"
-bash: cd: Users\moren\Desktop: No such file or directory
tibberous@Envy:/mnt/c$ cd "Users/moren/Desktop"
tibberous@Envy:/mnt/c/Users/moren/Desktop$ dp_dump aliases.db
tibberous@Envy:/mnt/c/Users/moren/Desktop$ db_dump aliases.db
VERSION=3
format=bytevalue
type=hash
h_nelem=4174
db_pagesize=4096
HEADER=END
4000
4000
616275736500
61646d696e4066756c6c7072696365657869742e636f6d00
There, congratulations, you just bypassed export restrictions. Feel free to try an sell a janky 20 yo database to the Russians, sure the Ukrainain's will appreciate the S400 sites being stored as hash-verified plaintext, lol.