Take two - AvidCP, an accessible and usable control panel application. So previously , I took a bit of a quick look at the control panel solution i’ve been developing to run here. Tonight’s update focuses on the “Email Services” area of the system.
The Email Services section allows users to easily add mail handling for domains to their account. Further to that they can create domains which redirect to another domain or standard POP/IMAP/SMTP accounts and forwarders. The underlaying base of this is powered by Postfix and Courier-IMAP/POP3 as well as a MySQL database.
The client site implementation makes use of some javascript techniques to hide or show certain parts or features. This reduces the clutter in the layout but still provides full functionality to the user when they place their mouse over a certain item or click a certain check box.
The focus was once again on keeping the design simple and minimalist whilst maintaining the functionality of other control panel scripts. Other control panel scripts make horrible use of tables with hardly any spacing and present all of the information in one huge “chunk”. Not very appealing to look at (Yes Hsphere, I’m primarily talking about you!). My focus here is to try and get the word out to developers that there are much simpler and attractive ways of doing things instead of throwing all of the data on the screen.
After clicking on “Email Services” in the menu you’re presented with a page which lists all of the domains in your account associated with email. It shows you domains which contain mail accounts as well as redirection domains. Placing your mouse over one of the domains (and the section of data below it) will show the various control links for that domain - the delete button in the case of this screenshot.
At the bottom of the screen there is the “Add a new Domain” form which allows you to either add a new domain or forwarded mail domain. Want a forwarded domain? Check the appropriate check box and the form content turns in to one specifically for creating that (i.e., it adds another text box to enter the domain to redirect to).
Clicking on a domain leads you to another page.
You’re taken to a page which lists all of the specific mail accounts assigned to that domain. You get an overview of both your standard mail accounts and your forwards.
Once again - icons are used to differentiate between the two different kinds of accounts and the controls (Edit, Delete and Set as catch all) are shown or hidden using javascript depending if the mouse is over that item or not.
A form similar to that of the create domain form exists at the bottom of the page allowing you to create new POP/IMAP accounts as well as forwarded accounts. Using a similar javascript based system, checking either “Mailbox” or “Forward” presents two different forms allowing for the different types of input.
Clicking edit on one of the mail accounts or forwards takes you to a page where you can change a few of the options for that mail account - such as the password or redirection address.
Now, a bit on the back end of the system. I’ve developed a custom daemon in PHP which stays in memory on the server. This daemon checks the modified time of a certain file - if it has been modified since the last check then the daemon needs to perform some tasks. Tasks are assigned on the front end. An example of a task is the creation of mailboxes on the server (done using a Unix command). The front end stores task information needing to be done in the database and then touches the task to do file updating its modified time stamp.
The server was built in a modular way so that I can easily add new functionality to it by simply dropping a file in a “modules” folder and then storing the appropriate information in the database when I need to run that specific module.
That’s all for this little installment. The next module will either be DNS, Database or Web management.





