A Better Web Mail Client for WPX
Internet users who want to use email with their own domain have somewhat limited choices. Even though almost every web hosting company will offer you ‘free’ and often ‘unlimited’ mailboxes, the service is usually quite bare-bones. Useful Webmail GUIs are noticeably lacking.
If you handle email on a mobile device or use some desktop mail client software, this could be enough. But if you are looking for a genuine replacement for web-based email, there aren’t that many providers that will handle this task decently. Among those who do (Google Workspace, Zoho Mail, MX Route, Outlook/Hotmail, and a few select others) there is one common, yet often ignored limitation: you do not have full and unobstructed ownership over your data, and migration is difficult, if at all possible.
All of those services store emails on their own servers, and allow users to access them from the web browser or via 3rd party mail client via the POP3/IMAP protocol. Although it is possible to migrate mailboxes via IMAP, email is not portable in the same sense websites are.
It is, of course, possible to set up your very own email server so that you employ safeguards against deletion, create multiple backups and control access. However, the setup of a ‘proper’ email server requires a separate system that is difficult to create and maintain, and generally needs the involvement of professionals throughout its lifetime.
This is OK for medium and large corporations, but what about small businesses like most shared hosting users?
WPX.net offer unlimited mailboxes, but their web mail is somewhat lackluster even if functional (sorry, guys!). If you ask them, they will readily suggest that you should choose a different service, such as Google or Zoho, if you want better browser-accessible email.
But these services, while priced reasonably, are not free. Pricing scales per mailbox, regardless of how heavy or light usage that mailbox sees. For a boot-strapped company with a couple of part-time employees who want to present themselves well to the world and not to share a single mailbox among everybody, this can easily add several hundred dollars to the annual bill.
Surely there must be a way past this?
I decided to check if there is some middle ground that allows WPX.net users to still use the freely available mail services offered as part of their hosting package, while having a better experience than the web-based client which is currently available to them.
Table of Contents
The Present State of Web-based Email Clients
There exist many web-based email clients that ship under open source licenses and are free to use in self-hosted mode. There are powerful groupware tools such as Horde Mail and relics like SquirrelMail (mail for nuts!) whose development stopped nearly a decade ago but are still supported. There is the newer generation of somewhat more modern, better-looking and mobile device compatible clients like RoundCube and Rainloop.
I have tried all of them, but I was never entirely happy. And although I have a powerful desktop mail client (Mailbird), I still wanted to find a good web-based solution.
After about an hour of research, I believe I finally discovered The One: Afterlogic WebMail Lite PHP. (Well… not exactly ‘The One’ because it also has a .NET version for Microsoft Internet Information Services (IIS), if you are into such perversions, but you get my idea.)
Webmail Lite offers a minimalistic interface designed using modern HTML5 and CSS3 technology; it is localized into more than 30 languages, including those who use RTL alphabets; it integrates the official Microsoft online viewer for MS Office documents; it uses 2FA (two-factor authentication); it even supports OpenPGP!
Most importantly, it is under active development (latest release is from April 2022). So I immediately decided to give it a go.
Installing Afterlogic WebMail Lite
Webmail Lite ships as a 20MB ZIP archive that can be extracted in any folder of a web server, which means that I can install it as a sub-folder for an existing website, the same way I did with InfiniteWP.
This will save me from having to create a separate website just for that purpose. Those who are on the WPX Business Plan will certainly appreciate the fact that using Webmail Lite will not use up their domain quota.
Once I decompressed the ZIP file into
webmail/, the first phase of the installation was done. I was able to load the GUI and it greeted me with a beautiful login screen:
However, I was not yet ready to log into the user part of the program. According to the installation docs, first I needed to perform a compatibility check by heading to
I did that with a small amount of anxiety but thankfully, the installer had deemed the WPX.net environment compatible with its requirements and allowed me to continue:
How to Set Up Webmail Lite
The setup procedure for Webmail Lite is simple. I have to set up the following:
- admin account access
- database access
- logging for debugging purposes and user activity (elective)
- common webmail GUI default settings such as site name, color scheme (spoiler alert: Sand is the best among the 4 available themes), default UI language and 12/24-hour display
- Facebook and Google passwordless login (elective, I will skip that entirely)
- mail behavior for new users (either automatic or manual provisioning) and (optionally) allow users to add external mailboxes
- add one or more mail servers
Let us go on one by one.
Admin Account Access
This is the place where you can change the access details for the admin account. The default configuration will accept a username of ‘superadmin’ and empty password.
The superadmin username is freely changeable and I strongly suggest that you pick up something that doesn’t bear any remote resemblance to an admin username.
I leave the ‘old password’ field blank and supply a long & strong new password. Saving the settings, and I am done.
Without logging off, I open an anonymous session in another browser window to see if my settings work. They do.
Afterlogic Webmail Lite stores all email-related metadata into an MySQL database, and I need to create one.
I have to enter my WPX client dashboard and go to Databases, then click on ‘Add database’. I give it a meaningful name:
I then need to create a database user. This is a bit more complicated because of a bug in the UI. I first click on the ‘Add database user’ button:
There is a peculiarity in the WPX GUI here that you need to be aware of. When you click on ‘Add database user’ and type a name, this is NOT the username you will get. Instead, the control panel will append a pseudo-random suffix to the name you choose and will tell you that user ‘whatever’ has been created.
However the username given in that window is also NOT the username you will get. In order to see the full and correct username, you need to click on ‘List database users’. Only there you will get the full name of your DB user.
I go back and type all details (DB username, password and DB name; I leave 127.0.0.1 as entered as Host) and click on ‘Test connection’. A green status message in the top right corner of the window tells me I am good.
Nearly done here — I only have to create the DB structure, which I do by clicking on the ‘Create/Update tables’ button. It takes less than 3 seconds. I am unsure if I have to also click on ‘Update configuration’. The description tells me that I need to do it to update module configuration, but to the best of my knowledge I have not installed any modules.
A side note: Webmail Lite has a list of add-on modules that add functionality such as the ability to show reCaptcha at login, export messages as .zip archive or save them as PDF files, and so on. You should check out the module directory.
I decide to click on ‘Update configuration’ and nothing breaks. I get another confirmation that the operation was performed successfully. I think I am done here.
Afterlogic Webmail Lite allows the administrator to log debug errors and also to keep track of user activity. I enable debug logging and adjust the verbosity to ‘Warnings’. This will allow me to see how well the software will work using the PHP version that runs on this vhost (8.0). I don’t care about user activity logging.
Name, Theme and Localization
On the next screen, I have to choose a ‘name for the site’ (meaning, the title that will show in the browser tab) and a theme. ‘Sand’ is the the best. I leave language as ‘autodetect’ and choose a 24-hour time format by selecting 13:00.
Done here, a little more remains.
This data could have easily been placed elsewhere, for example on the home screen. Whatever. If you are reading this in the distant future, I state for the record that my review for Afterlogic WebMail Lite PHP is based on version
Webmail Lite allows users to log in by authenticating via their Facebook and/or Google profile. Each one requires a platform application. I will not be doing this right now, but if you want to do it, here’s how to begin:
- How to create a Facebook App
- How to create a Google App (for Gmail accounts)
- Go to https://developers.google.com/identity/sign-in/web/sign-in and start reading. I have no idea where to go from there.
- How to create a Google App (for Google Workplace accounts):
- Go to https://admin.google.com
- Scroll down and click on Apps
- Select Web and mobile apps
- Click on Add app and select Add custom SAML app
- Follow the on-screen instructions
On this tab, I need to define the behavior of the Webmail Lite application when a user logs in with valid email credentials.
Enabling the first option, ‘Allow auto-provisioning of new users’ means that if the application connects successfully with one of the configured mail servers, it will automatically create a local profile for this user and keep track of his email automatically. The alternative is to assign this task to the administrator to do it manually, which might be better for security.
The second option allows webmail users to add 3rd party mailboxes and to use them via the web GUI of the Webmail Lite application. While good to have at my disposal, I don’t see myself ever using this feature. Insuring good deliverability will require extra work adding or changing existing DNS records (SPF, DMARC).
Because my objective is to simply find a solution for accessing email on WPX-hosted domains via a web-based GUI that is better than the built-one, this feature is out of scope.
I will leave this one disabled and move on.
Setting up a Mail Server
The only thing that remains is to actually set up our mail server. First, I will need to create a new mailbox for tests, and get the email credentials along with it. Back to the WPX host client area I must go, this time to E-mail Boxes.
I have blurred the incoming/outgoing server name and IP address so that you don’t get distracted when following this tutorial and decide to copy them. You should obtain the specific values from your own mailbox control panel.
One advantage of the WPX.net shared hosting service is that every web host has its own fully configured mail server. I will try to access the mail server via local address (127.0.0.1) instead of using the public server IP. This will probably make my connection a tad faster (because traffic will never leave the local machine) and safer (for the very same reason).
While still here, I create for myself a brand new mailbox for testing purposes via the ‘Add a new e-mail box’ button in the lower right corner.
I am so close to the moment of truth! This is how I provisioned my mail server:
As you can see, I limited it to a single domain, but this is entirely by choice. You may have multiple domains added to your WPX.net hosting account, and you can either list all of them, or leave the field ‘Domains’ blank. Because I am not fully familiar with the product though, I would recommend that you list domains by hand instead of leaving the field blank, as this could potentially limit the possibility for abuse.
Observe that SMTP authentication should be configured to require full email address and password; this is how the WPX.net mail server is configured to work.
Sieve is a web server language that allows precise filtering of email message by issuing commands either server-side or client-side. The software stack that runs on WPX.net hosting servers supports sieve, but I am not sure if it is enabled, and that is why for the time being at least I will leave it disabled.
The purpose of the ‘IMAP and SMTP hosts for external mail clients’ checkbox and the fields below it is purely informational: users have the ability to see server settings from within their webmail GUI, and if the SMTP/IMAP server is specified as localhost (as I did), you should put the real server hostname or IP address here for the benefit of your users who might want to replicate their mailbox on a mobile device as well.
Logging as Webmail User for the First Time
The moment of truth has come. I configured the Afterlogic webmail GUI, and now it is time to attempt login with the credentials for the new mailbox I created earlier.
After a second or two… I am in! Here is how my brand-new and very empty webmail looks like:
Next stop is to run the mailbox through some mail warming exercises; as a result, over the next couple of days I will receive up to 150 automatically generated messages from random addresses, and the mail warming service will also issue some outgoing messages that will end up in my sent mail folder. This way, the test mailbox will quickly achieve a lived-in look.
While waiting for all of this, I will also shoot a message to my favorite mail deliverability testing tool to see how well it will work. The GUI is simple and functional; it obviously lacks the utility and polish of Gmail or Zoho Mail, but in my humble opinion isn’t half bad either.
I would have preferred to have the Importance, Sensitivity and Reading confirmation bar at the bottom, and the Send button in the lower right corner instead of the upper left but I’ve seen worse.
Mail-tester awards me a 9/10 score, which is in line with my expectations. For more details about that missing last point, see my earlier post on configuring SMTP within WordPress, and use the ToC to scroll down to ‘And what does a DKIM record do?’ near the end.
At this moment, I realized I was facing an issue: my outgoing emails were not being stored in the Sent folder. After some poking around I figured out the root cause. For whatever reason, not all mail folders that we are accustomed to use were enabled by default. Changing this is a per-account setting accessible via Settings➡Email Account➡Manage Folders:
The less pleasant part of this discovery was that this is supported at folder level only (i.e. I can’t get everything in one pass):
Still, this is a very important feature to have at our disposal. Having this export capability at hand, one could backup their email manually, which is still much better than before.
But I also want to see how email is stored within the database. Because if the database is structured sufficiently well, then email becomes easy to backup and truly portable between hosts, which solves our problems with email data ownership.
To do my analysis, I will use my favorite tool, Adminer. This seemingly malnourished phpMyAdmin relative is just as powerful as its more popular and beefier sibling, yet is fully portable and runs as a single PHP file. Let’s grab a copy of the latest Adminer version and have a look at the data model.
Storing Settings: internal DB Structure and contents of ‘data’ folder
Unless I have missed something, it seems that Webmail Lite has a hybrid approach towards storing configuration settings. Some of these (e.g. email identities, lists of contacts, etc.) are stored inside the database. Other, more general settings reside inside the
/data subfolder as config files in JSON format.
Most importantly, Webmail Lite does not seem to store actual emails in its own database. It only uses the DB for storing application settings and metadata.
A part of me was hoping this would not be so, and that the emails would be stored inside as well. This would make mailbox portability much easier, but alas it was not to be.
Importing and Exporting Emails
Not storing the emails in the database does not mean the end of the world though.
WebMail Lite supports exporting individual emails or whole email folders. Individual emails are exported as .eml files (EML is a standardized format); Email folders are exported as a ZIP archive which contains all individual messages as separate .eml files.
Import works in a similar way with one distinction: it does not accept individual .eml files, only .zip archives. You can still import a single .eml file; you just need to zip it first.
Using this solves our issue with data ownership and data mobility. From ownership perspective, I can periodically download a full archive of all my emails. From mobility perspective, I can equally well upload an archive into a folder, and the messages will be synced with the local mailbox.
In theory (I am saying this because I haven’t tried it in practice) this means that you could export all your emails, redirect email to be handled by a different hosting company, install WebMail Lite on their server, set up the mail box for a second time and simply import the contents of your folders.
While not too convenient, I believe the above is a viable solution to the portability problem.
Other Nice To Haves
There are many other ‘nice to have’ features that I will not mention in detail:
- Support of multiple ‘identities’ per email account: you can set up several combinations or variations of your name (as seen on the From: line), email address, and signature.
- Automatic blocking of embedded images in message that can be switched off once or permanently for messages from a particular sender
- Easy way to download individual message in eml format
- Easy access to message headers and source for analysis
- Support for in-browser event notifications
- Support for handling mailto: links (although I’d personally not enable this)
- Support for OpenPGP encryption via PKIIt is very easy to enable support for additional mail servers. It requires one preliminary operation from the webmail admin (add new mailserver) and then the user can simply log in using their existing credentials. Syncing the emails is very quick, for me it took literally less than 2 seconds.
Note: this requires the setting ‘Allow auto-provisioning of new users’ to be enabled in the admin panel. If it isn’t, the webmail admin will need to manually approve every new user who has logged successfully. I was initially against having this setting enabled, but seeing how simple it is from the mail user’s perspective I’d recommend that you keep this setting enabled:
Comparison with Usermin
I think you will agree with me that while Usermin offers a serviceable UI and supports all basic mail sending functions, WebMail Lite does that plus a lot more, and does it using a GUI that is much more pleasing to the eye.
I did not find any serious issue that would make me give up using this software. In my opinion, it is not difficult to set up, but it involve reading the documentation and editing files, which some people might find challenging or tedious.
Some security features might not work out of the box and require some knowledge of server administration (nothing that WPX support can’t help with).
One thing I was not able to test was how updates work. Webmail Lite does not have an automated version update routine and upgrades need to be performed manually. Apparently one needs to delete the complete application folder except the
data/ sub-folder, and replace it with the newest version. Presumably, the software itself will take care of possible changes to the database model or config file structure.
Those who are used to how modern email clients handle email threads will be disappointed: apparently, the WPX.net mail server appears not to support this feature. Sorry. However I will study this issue further and will see if I can convince WPX to enable it.
As stated in the beginning of this article, I have two pain points with hosted email:
- Usually there isn’t a good web-based mail interface available
- Mailboxes are not portable
So how does Afterlogic WebMail Lite PHP handle these two issues?
On the subject of user experience, I’d say it passes the bar easily, and while not as sophisticated as a paid 3rd party email service like Gmail, Zoho or Hotmail, it is way above average in terms of looks and available functionality. By all means, it is a much better alternative to the webmail solution provided by WPX.net
The issue with email portability is more complicated. If I want to change webhosts, I can do that. Once I reproduce my WebMail Lite installation on the new host and make sure I am still connecting to the ‘old’ mailbox, I can export my emails in a series of ZIP archives (one archive per mail folder).
I can then modify the DNS records related to email delivery, and the new mail server will begin receiving my email. Although the local mailbox will be empty, I can now import my zipped email, and WebMail Lite will take care to store them in the mailbox.
So while it does require some footwork, in the end this solution solves the problem with email portability and data ownership. Which means the task is accomplished!
I strongly recommend that you have a look at what Afterlogic WebMail Lite PHP can offer you, and try it out to see for yourself. Ownership over email is often overlooked, but it doesn’t need to be this way. With WebMail Lite, you can take the matters into your own hands. I hope you will.