Password change for cPanel

If you run the product on cPanel, you can use this plugin to enable password change option in user account settings, so that user can change their email account password.

Upon downloading and extracting plugin package, rename its main directory from:

plugin-cpanel-change-password-master

to:

cpanel-change-password

Then you'll need to deploy the plugin so that its index file is available at the following location:

data/plugins/cpanel-change-password/index.php

To enable the plugin, add the following to array defined in data/settings/config.php file:

'plugins.cpanel-change-password' => true,
'plugins.cpanel-change-password.config.hostname' => '...',
'plugins.cpanel-change-password.config.username' => '...',
'plugins.cpanel-change-password.config.password' => '...'

You need to supply your domain name the product is installed under, and your cPanel credentials. Setting hostname to 127.0.0.1 is known to work. As for username and password, those are cPanel credentials of your user on server.

While it's possible to access email accounts hosted by external mail servers, password change option will only be available for the accounts hosted by this specific cPanel server. By default, the plugin checks if IMAP server host of the account equals 127.0.0.1 or localhost, and password change will only be enabled for those cases. However, you can reconfigure the plugin to have password change for specific IMAP host or a number of those:

'plugins.cpanel-change-password.config.servers' => array('imap.host1.com', 'imap.host2.com', 'imap.host3.com'),

If there's only one value to supply, it can be specified as an array:

'plugins.cpanel-change-password.config.servers' => 'imap.host.com',

- or just as a string:

'plugins.cpanel-change-password.config.servers' => array('imap.host.com'),

Note that it doesn't affect plugins.cpanel-change-password.config.hostname value as that one is only used for sending password change requests to cPanel system.

Please also note that this plugin won't work for a product installed globally with cPanel installer, under root credentials. You need to install a regular package of the product in order to use the plugin.