
Actualmente, contamos con un sistema POP/IMAP/Webmail en pleno funcionamiento (que utiliza Dovecot y Roundcube) que es una brillante torre de perfección en su diseño previsto. Tenemos miles de clientes que pertenecen a un dominio "predeterminado" (lo llamaré nuestrodominio.com) e inician sesión correctamente con un nombre de usuario y contraseña. Tenemos algunos miles más que poseen dominios que hospedamos e inician sesión exitosamente con su dirección de correo electrónico completa y contraseña (llámelo dominiocliente.com). Ha sido así desde la década de 1990, con una configuración de cliente muy arraigada.
El problema es que ahora que las personas están acostumbradas a iniciar sesión en formularios web con una dirección de correo electrónico completa, se debe recordar a las personas que usan nuestrodominio.com que inicien sesión en el correo web usandosolosu nombre de usuario. Esta es una llamada que nuestro departamento de soporte técnico recibe varias veces a la semana (e incluso yo soy culpable de hacer esto, simplemente no llamo al soporte técnico por eso), y probablemente debería eliminarse con algún tipo de solución de software.
Entonces, ¿cómo conseguimos que Roundcube o Dovecot reconozcan "[correo electrónico protegido]" como "nombre de usuario", sin tener que cambiar el nombre de usuario real de todos en nuestro sistema? Perosolohazlo si el dominio es "nuestrodominio.com" yno"dominiodelcliente.com". Tenga en cuenta que cualquier codificación personalizada que hagamos deberá volver a implementarse cada vez que realicemos actualizaciones de seguridad, y solo consideraríamos esa opción como la última opción posible.
TL;DR:
Necesitamos esta lógica:
if $email contains @ourdomain.com
{
remove @ourdomain.com;
submit to roundcube;
} else {
submit to roundcube;
}
Respuesta1
Este problema se puede solucionar en roundcube, dovecot o en el backend de su nombre de usuario.
Roundcube tiene la opción deagregar automáticamente partes del dominio si no se proporciona ningún dominio(según lo propuesto porKondybas). Pero no será demasiado útil en su caso. Por supuesto, puedes parchear roundcube (con lenguaje PHP) para agregar tu lógica.
Dovecot tiene la opción dedominio de tira(como se propone en La búsqueda de usuarios de Dovecot falla cuando se utiliza el formato nombre de usuario@dominio) pero no puede realizar una eliminación condicional (por ejemplo, eliminar el dominio si dominio = @nuestrodominio.com). Por supuesto, puedes parchear dovecot (con lenguaje C) para agregar tu lógica.
El nombre de usuario-backend también es una opción. No proporciona el backend que utiliza (ya sea SQL, LDAP, motor personalizado). Me imagino que tienes una columna de nombre de usuario que tiene dos formatos.con y sin dominio. Ahora, puede convertir todos los nombres de usuario sin dominio en nombre de usuario@nuestrodominio. Puede combinar este proceso con la opción 1 (dominio de adición automática de roundcube) para que nombre de usuario y nombre de usuario@nuestrodominio puedan iniciar sesión.
Respuesta2
RoundCube
tiene una opción llamadausername_domain
// Automatically add this domain to user names for login
// Only for IMAP servers that require full e-mail addresses for login
// Specify an array with 'host' => 'domain' values to support multiple hosts
// Supported replacement variables:
// %h - user's IMAP hostname
// %n - hostname ($_SERVER['SERVER_NAME'])
// %t - hostname without the first part
// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
// %z - IMAP domain (IMAP hostname without the first part)
// For example %n = mail.domain.tld, %t = domain.tld
$config['username_domain'] = '';
Si ha utilizado un subdirectorio (como ourdomain.tld/roundcube
), establezca esta opción en el
$config['username_domain'] = '%n';
Si ha utilizado subdominios (como mail.domain.tld
), establezca esta opción en
$config['username_domain'] = '%t';
Cuando el usuario proporciona su correo electrónico completo como inicio de sesión, ese correo electrónico se utilizará sin ningún cambio. Si se omite la parte del dominio, RoundCube
se utilizará el dominio URL para completar. También hay varias opciones interesantes en la configuración del roundcube.