<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://msc.siamtools.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Roundcube_password_change_plugin</id>
		<title>Roundcube password change plugin - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://msc.siamtools.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Roundcube_password_change_plugin"/>
		<link rel="alternate" type="text/html" href="https://msc.siamtools.com/wiki/index.php?title=Roundcube_password_change_plugin&amp;action=history"/>
		<updated>2026-05-01T19:30:02Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://msc.siamtools.com/wiki/index.php?title=Roundcube_password_change_plugin&amp;diff=1267&amp;oldid=prev</id>
		<title>Snifer at 04:05, 29 August 2014</title>
		<link rel="alternate" type="text/html" href="https://msc.siamtools.com/wiki/index.php?title=Roundcube_password_change_plugin&amp;diff=1267&amp;oldid=prev"/>
				<updated>2014-08-29T04:05:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 04:05, 29 August 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''How to enable password change plugin roundcube mail (Zpanel)'''--[[User:Snifer|Snifer]] 11:04, 29 August 2014 (ICT)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''How to enable password change plugin roundcube mail (Zpanel &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Centos6.5&lt;/ins&gt;)'''--[[User:Snifer|Snifer]] 11:04, 29 August 2014 (ICT)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;------------&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Snifer</name></author>	</entry>

	<entry>
		<id>https://msc.siamtools.com/wiki/index.php?title=Roundcube_password_change_plugin&amp;diff=1266&amp;oldid=prev</id>
		<title>Snifer: Created page with &quot;'''How to enable password change plugin roundcube mail (Zpanel)'''--~~~~  ------------  1 Create file in /etc/zpanel/panel/etc/apps/webmail/plugins/password/drivers/zpmail.php...&quot;</title>
		<link rel="alternate" type="text/html" href="https://msc.siamtools.com/wiki/index.php?title=Roundcube_password_change_plugin&amp;diff=1266&amp;oldid=prev"/>
				<updated>2014-08-29T04:04:08Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;How to enable password change plugin roundcube mail (Zpanel)&amp;#039;&amp;#039;&amp;#039;--~~~~  ------------  1 Create file in /etc/zpanel/panel/etc/apps/webmail/plugins/password/drivers/zpmail.php...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''How to enable password change plugin roundcube mail (Zpanel)'''--[[User:Snifer|Snifer]] 11:04, 29 August 2014 (ICT)&lt;br /&gt;
&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
1 Create file in /etc/zpanel/panel/etc/apps/webmail/plugins/password/drivers/zpmail.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/zpanel/panel/etc/apps/webmail/plugins/password/drivers/zpmail.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2 Replace SQL Authentication in config bellow.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * ZPanelX SQL Password Driver&lt;br /&gt;
 *&lt;br /&gt;
 * Driver for passwords stored in SQL database&lt;br /&gt;
 *&lt;br /&gt;
 * @version 1.1&lt;br /&gt;
 * @author &lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class rcube_zpmail_password&lt;br /&gt;
{&lt;br /&gt;
    function save($curpass, $passwd)&lt;br /&gt;
    {&lt;br /&gt;
        $rcmail = rcmail::get_instance();&lt;br /&gt;
&lt;br /&gt;
        $local_part  = $rcmail-&amp;gt;user-&amp;gt;get_username('local');&lt;br /&gt;
        $domain_part = $rcmail-&amp;gt;user-&amp;gt;get_username('domain');&lt;br /&gt;
        $username    = $_SESSION['username'];&lt;br /&gt;
        $host        = $_SESSION['imap_host'];&lt;br /&gt;
        // convert domains to/from punnycode&lt;br /&gt;
        if ($rcmail-&amp;gt;config-&amp;gt;get('password_idn_ascii')) {&lt;br /&gt;
            $domain_part = rcube_idn_to_ascii($domain_part);&lt;br /&gt;
            $username    = rcube_idn_to_ascii($username);&lt;br /&gt;
            $host        = rcube_idn_to_ascii($host);&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            $domain_part = rcube_idn_to_utf8($domain_part);&lt;br /&gt;
            $username    = rcube_idn_to_utf8($username);&lt;br /&gt;
            $host        = rcube_idn_to_utf8($host);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $sql = 'SELECT password FROM mailbox WHERE username=&amp;quot;'.$username.'&amp;quot;';&lt;br /&gt;
&lt;br /&gt;
        $host = &amp;quot;mysqlhost&amp;quot;; // Usually localhost&lt;br /&gt;
        $dbName = &amp;quot;zpanel_postfix&amp;quot;; // your ZPanelX postfix database. Default value here&lt;br /&gt;
        $dbUser = &amp;quot;databaseusername&amp;quot;;&lt;br /&gt;
        $dbPass = &amp;quot;databasepassword&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        try {&lt;br /&gt;
            $db = new PDO(&amp;quot;mysql:host={$host};dbname={$dbName}&amp;quot;, $dbUser, $dbPass);&lt;br /&gt;
            $db-&amp;gt;setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );&lt;br /&gt;
        } catch (PDOException $e) {&lt;br /&gt;
            //echo 'Database error: '. $e-&amp;gt;getMessage() . '&lt;br /&gt;
';&lt;br /&gt;
            return PASSWORD_CONNECT_ERROR;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $res = $db-&amp;gt;query($sql);&lt;br /&gt;
        $result = $res-&amp;gt;fetch();$pass = $result[&amp;quot;password&amp;quot;];&lt;br /&gt;
        $hash = str_replace(&amp;quot;{PLAIN-MD5}&amp;quot;, &amp;quot;&amp;quot;, $pass);&lt;br /&gt;
        if (md5($curpass) != $hash)&lt;br /&gt;
        {&lt;br /&gt;
            // echo &amp;quot;Password mismatch error&amp;quot;;&lt;br /&gt;
            return PASSWORD_ERROR;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $pass = &amp;quot;{PLAIN-MD5}&amp;quot;.md5($passwd);&lt;br /&gt;
        $sql = 'UPDATE mailbox SET password=&amp;quot;'.$pass.'&amp;quot; WHERE username=&amp;quot;'.$username.'&amp;quot;';&lt;br /&gt;
        $res = $db-&amp;gt;query($sql);&lt;br /&gt;
        if ($res) {&lt;br /&gt;
                return PASSWORD_SUCCESS;&lt;br /&gt;
        }&lt;br /&gt;
        return PASSWORD_ERROR;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3 copy file /etc/zpanel/panel/etc/apps/webmail/plugins/password/config.inc.php.dist to config.inc.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp config.inc.php.dist config.inc.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4 Change the config file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$rcmail_config['password_driver'] = 'sql';&lt;br /&gt;
&lt;br /&gt;
$rcmail_config['password_query'] = 'UPDATE zpanel_postfix.mailbox SET password=CONCAT(\'{PLAIN-MD5}\',MD5(%p)) WHERE username=%u AND password=CONCAT(\'{PLAIN-MD5}\',MD5(%o)) LIMIT 1';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5 Enable password plugin /etc/zpanel/panel/etc/apps/webmail/config/main.inc.php&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$rcmail_config['plugins'] = array('password');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Snifer</name></author>	</entry>

	</feed>