En ocasiones cuando tenemos definidos alias para los buzones de correo de algunos dominios, es confuso para el usuario final el manejo de Alias, es decir, al usuario final se le entrega su dirección al estilo: pepito@sudominio.com. ¿Porque carajos hay que confundirlo diciéndole que si!!, que su correo es pepito@sudominio.com, pero que para el sistema, su buzon es real es pepito12345?...entonces a mi estimado usuario final que nada está entendiendo, lo ponemos a hacer login en Squirrelmail con pepito12345 para que quede mas confundido. ¿Porque mas bien no lo ponemos a hacer login con su dirección de correo electrónico completa y que sea Squirrelmail quién se encargue de buscar el buzón real para pepito@sudominio.com? Aquí va pues la solución.
<?php
/* SquirrelMail Hack by JFM-F v1.0
Date: 01-Mar-2005
Coder: Juan Felipe Mugnoz - Fernandez
E-Mail: juanmuno@diginet.com.co
Applies to: SquirrelMail version 1.4.4-1
Description:
This hacks allow a user login with his complete
e-mail address via SquirrelMail login page.
Put this file into /usr/share/squirrelmail/src/
and rename to "alias_login.php".
Edit /usr/share/squirrelmail/src/redirect.php
and insert the lines below after the following
lines:
.
.
/* remove redundant spaces
$login_username = trim($login_username)
Code next lines after:
//alias_login.php
include("alias_login.php");
Save /usr/share/squirrelmail/src/redirect.php
and test yourself. Try to login with a user alias
and his complete e-mail address.
Enjoy!
*/
//$login_username, trae todo lo que ingresaron
//en el campo "Username" de la pagina de login
//de SquirrelMail.
if (strpos($login_username, "@")){
//Path al archivo de aliases
$ALIASES_FILE = "/etc/aliases";
//Disposicion de solo lectura del archivo
$ALIASES_FILE_MODE = "r";
//Abro el archivo de aliases en modo solo lectura
//y almaceno su handle o manipulador
$H_FILE = fopen($ALIASES_FILE, $ALIASES_FILE_MODE);
//Obtengo el tamagno del archivo de aliases
$FILE_SIZE = filesize($ALIASES_FILE);
//Las siguientes lineas comentadas se dejan para
//uso posterior.
/*if ($FILE_SIZE>2048){
while($BUFFER = fread($H_FILE, 2048)){
}
}*/
//Defino el buffer de almacenamiento y leeo
//el archivo de aliases.
$BUFFER = fread($H_FILE, $FILE_SIZE);
//Separo del buffer la direccion completa de
//correo electronico con la que estan
//iniciando la sesion para obtener el verdadero
//nombre de usuario.
$COMPONENTS = split("\: ".$login_username, $BUFFER);
//Elimino espacios en blanco redundantes
$COMPONENTS[0] = trim($COMPONENTS[0]);
$LENGTH = strlen($COMPONENTS[0]);
//Obtengo la posicion del ultimo salto de
//linea en la cadena.
$LAST_LINE = strrpos($COMPONENTS[0], 10);
//Finalmente, obtengo el nombre de usuario
//real para el sistema
$USER_MAILBOX = substr($COMPONENTS[0], $LAST_LINE+1, $LENGTH-$LAST_LINE);
//Cierro el archivo de aliases
$RESULT = fclose($H_FILE);
//Sobre escribo la variable "$login_username"
//con el verdadero nombre de usuario para el
//sistema.
$login_username = $USER_MAILBOX;
}
?>
