Generally, WebMail Pro allows for accessing existing email accounts only; creating new mailboxes on mail servers is not available in the product as it's not supported by standard email protocols. Still, it's possible to implement user signup by integrating with specific server software directly, and we did that in our MailSuite Pro mail server bundle. Also, we've had numerous requests to add similar functionality on cPanel, and as of version 8.2.16, it is available.
To enable user signup for WebMail Pro installed on cPanel, the following requirements are to be met:
-
The product has to be installed from standard ZIP package, it will not work for installations deployed with cPanel installer. We provide illustrated guide for installing WebMail Pro on cPanel.
-
You need to have one or several mail servers added in the product admin area, and in the domains list, include all the domains you wish to enable signup for.
- To configure integration with cPanel, you'll need credentials of either your cPanel account, or root password. If you have configured password change for cPanel, you probably have those details supplied already.
Anyway, edit data/settings/modules/CpanelIntegrator.config.json
so it looks like this:
{
"Disabled": [
false,
"bool"
],
"CpanelHost": [
"127.0.0.1",
"string"
],
"CpanelPort": [
"2083",
"string"
],
"CpanelUser": [
"yourUserHere",
"string"
],
"CpanelPassword": [
"yourPassWordHere",
"string"
],
"UserDefaultQuotaMB": [
50,
"int"
],
"SupportedServers": [
[
"*"
],
"array"
]
}
Make sure CpanelUser and CpanelPassword contain actual credentials of your cPanel account allowed to manage email accounts on the domains you need signup for. If you're using root account, CpanelPort should be set to 2087.
Also, make sure to set UserDefaultQuotaMB value to what you wish to be a default mailbox size.
Signup itself is configured in a different file, data/settings/modules/MailSignup.config.json
:
{
"Disabled": [
true,
"bool"
],
"ServerModuleName": [
"MailSignup",
"string"
],
"HashModuleName": [
"signup",
"string"
],
"CustomLogoUrl": [
"",
"string"
],
"InfoText": [
"",
"string"
],
"BottomInfoHtmlText": [
"",
"string"
],
"DomainList": [
[],
"array"
]
}
Normally, you'll only need to set Disabled to false there, and supply a list of domains, e.g.:
"DomainList": [
["domain1.com", "domain2.com", "domain3.com"],
"array"
]
All the domains supplied need to be hosted by this particular cPanel server, cPanel user account you supply must be able to manage emails on those domains, and the domains must be listed in "Mail Servers" section of WebMail Pro admin interface.
URL for signup page is obtained by appending #signup to the installation URL. For example, if you have WebMail at http://domain1.com/mail/
the signup page would be http://domain1.com/mail/#signup
and the interface would look like this:

To complete the registration, user needs to supply display name, login and password. If DomainList has more than one entry, user can select one of those domains from the dropdown list. Upon successful signup, user will be redirected into their account in WebMail Pro interface.
NB: It is strongly recommended to enable reCAPTCHA module to prevent from automated signups.
While by default there's no link for signup page anywhere in WebMail Pro interface, you can add it to the bottom of login page. That's achieved by editing HTML text in BottomInfoHtmlText setting in data/settings/modules/StandardLoginFormWebclient.config
configuration file.