I must have this functionality in my panel because more and more customers are using their local servers, so for me there's no coming back.
Regarding the other issues:
SMTP Traffic: I haven't looked into this, but I think the traffic script will need some tweaks. It's a priority for me too, as it's very important to account for traffic precisely.
Mail accounts - aliasing: Did you try to see if aliases are respected? I don't remember the postfix flow (whether transport comes before aliasing).
Mail account functionality:I can gray out the input boxes in the templates when there are accounts in the domain and show a warning text like "Please delete all pop3 accounts before enabling the MX relay feature". This will require an extra query at max and is easy. However, this could be a problem when one domain has pop3 accounts and then decides to go with MX relay. Unless timing is very precise, there will be a risk for loosing mail between the moment accounts are deleted and the moment the MX relay gets live.
A different solution would be to put a nice
RED warning next to the MX relay field with something like
"WARNING: MX Relay is active. The pop3 mailboxes for this domain will not receive new mail.". How do you like this idea?
Subdomains: I could add the same functionality to subdomains. Not a priority for me as normally subdomains are used for SEO stuff and mini sites.
MX Relays - no brackets: This one is easy. Just remove the brackets in ispcp-dmn-mngr and remember to put brackets whenever needed in the MX relay field. I have no customer with this requirement. If you need it this way, I have no objections (but it must be documented that [] are required for no mx lookup).
Quote:-) Maybe the engine could be further modified to write the mail accounts to (a new) "relay_recipients" table when the domain is relayed, instead of the "mailboxes" table. This way we could add "relay_recipients_map hash:/etc/postfix/ispcp/relay_recipients" so every recipient address is locally verified (the customer will have to create the mailboxes as if it wasn't relayed, but I think it's not a major drawback). What do you think?
This one could be nice to have. It's more work for the customers. For small domains it would be better with reject_unverified_sender. For bigger domains it's better to have maps on the server. However, without proper pages to load the maps it will look more like a hack than a feature. I could implement a dedicated page for uploading a text field with a list of the accounts (either space or newline separated). This will require an extra table but is a cleaner solution.
ispcomm.