Buenas, te copio un codigo que uso yo para cuando el usuario no recuerda su contraseña generar una y enviarsela al email y a la vez hacer un UPDATE de la contraseña nueva en la BD de ese usuario, espero te sirva.
Código PHP:
Ver original//Generamos Nueva Contraseña
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$passwordNueva = "";
for($i=0;$i<12;$i++) {
}
//Encriptamos la contraseña
$passwordEn = md5($passwordNueva); //Actualizamos contraseña Usuario
$editar= mysql_query("UPDATE usuario SET Password='".$passwordEn."' WHERE ID='".$idUsuario."'");
// creamos el email
require("../phpMailer/class.phpmailer.php");
// require("../phpMailer/class.smtp.php");
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->FromName = "Administrador";
$mail->Subject = "Recuperar Contraseña";
$mail->AddAddress("emailUsuario","nombreUsuario");
//Cuerpo Mensaje
$body = "Estimado/a <strong>$nombre.</strong><br>";
$body .= "Le enviamos su nueva contraseña, no olvide cambiarla una vez iniciado sesion<br>";
$body .= "Contraseña Nueva: <strong>$passwordNueva</strong><br>";
$body .= "Atentamente, Administrador ";
$mail->Body = $body;
$mail->Send();
Saludos