Estoy en Solaris 5.11 ejecutando sendmail. Los nombres de usuario locales tienen el formato <letras><números> (por ejemplo, hn06511). En el pasado usábamos alias para señalar <nombredeusuario>@dominioantiguo.com.
<nombre de usuario> <nombre de usuario>@dominioantiguo.com
Ahora hay un nuevo esquema de dirección de correo electrónico y un nuevo dominio. Ahora las direcciones de correo electrónico tienen el formato <nombre>.<apellido>@nuevodominio.com.
Entonces cambié los alias para que sean:
<nombre de usuario> <nombre>.<apellido>@nuevodominio.com
Esto funciona, sin embargo, <nombredeusuario>@dominioantiguo.com ya no funciona. Para colmo de males, hay muchos scripts con direcciones de correo electrónico codificadas al estilo antiguo.
Entonces quiero cambiar <nombre de usuario>@dominioantiguo.com -> <nombre><apellido>@dominionuevo.com. Pensé que podría usar virtusertables para lograr esto, así que hice una virtusertable que contiene:
@dominioantiguo.com %1
Supuestamente eso debería tomar <cualquiera>@olddomain.com y enrutarlo solo al nombre de usuario (%1). Esperaba que los alias que he definido se tradujeran <nombre de usuario> -> <nombre>.<apellido>@nuevodominio.com. Pero hasta donde puedo ver, sendmail está ignorando completamente esta tabla de virtuser e intentando la entrega a <nombredeusuario>@olddomain.com y, por supuesto, falla.
AFAICT Formateé virtusertable correctamente y ejecuté makemap (¿debería usar dbm o hash? He visto ambos). AFAICT, puse la FUNCIÓN adecuada, realicé la creación y me aseguré de que el sendmail.cf generado esté en el lugar adecuado. He visto FUNCIÓN expresada como ambas
FUNCIÓN (
virtusertable',
dbm -o /etc/mail/virtusertable')
y
FUNCIÓN (
virtusertable',
hash -o /etc/mail/virtusertable')
Pero ninguno de los dos funciona.
¿Qué tipo de depuración u otra información puedo proporcionar y probar?
Gracias de antemano.
Respuesta1
Comandos de depuración virtusertable para el usuario root.
Busque la @oldomain.com
entrada en virtusertable
echo '/map virtusertable [email protected]' | sendmail -bt
Compruebe si sendmail busca en virtusertable direcciones de correo electrónico de olddomain.com
echo '3,0 [email protected]' | sendmail -d60.5 -bt
-d60.5
rastrea las búsquedas de mapas (también búsquedas virtusertable).
Más sugerencias:
m4
espera otra citaFEATURE(virtusertable,`hash /etc/mail/virtusertable')
No haga que virtusertable sea opcional. Retirar
-o
de laFEATURE
línea.
Con-o
sendmail se ignora la virtusertable faltante.Sendmail utiliza una versión compilada de virtusertable. Úselo
makemap
para compilar virtusertable.virtusertable se consulta solo para dominios de correo electrónico locales (
$=w
) y$={VirtHost}
dominios.Utilice el siguiente comando como root para obtener ambas listas de dominios
echo '$=w' | sendmail -bt echo '$={VirtHost}' | sendmail -bt