I am using the mail_user_update.php as an example to change passwords. This updates the password but it does not encrypt it so we can't access the mailbox via roundcube or a mail client. I am thinking there needs to be an encrypt function? can anyone help? <?php require 'soap_config.php'; $client = new SoapClient(null, array('location' => $soap_location, 'uri' => $soap_uri, 'trace' => 1, 'exceptions' => 1)); try { if($session_id = $client->login($username, $password)) { echo 'Logged successfull. Session ID:'.$session_id.'<br />'; } //* Parameters $mailuser_id = 794; //$client_id = 15; //* Get the email user record $mail_user_record = $client->mail_user_get($session_id, $mailuser_id); //* Change the status to inactive print_r($mail_user_record); $mail_user_record['password'] = crypt_password('gilbert'); print_r($mail_user_record); $affected_rows = $client->mail_user_update($session_id, $client_id, $mailuser_id, $mail_user_record); echo "Number of records that have been changed in the database: ".$affected_rows."<br>"; if($client->logout($session_id)) { echo 'Logged out.<br />'; } } catch (SoapFault $e) { echo $client->__getLastResponse(); die('SOAP Error: '.$e->getMessage()); } ?>
The password has to be passed unencrypted to the function, so the line: $mail_user_record['password'] = crypt_password('gilbert'); has to be: $mail_user_record['password'] = 'gilbert'; If you use the function crypt_password then ispconfig detects that you try to pass a password in a unknown encryption and will ignore it.