Estou no Solaris 5.11 executando o sendmail. Os nomes de usuário locais têm o formato <letras><números> (por exemplo, hn06511). No passado, usávamos aliases para apontar para <username>@olddomain.com.
<nome de usuário> <nome de usuário>@olddomain.com
Agora há um novo esquema de endereço de e-mail e um novo domínio. Agora os endereços de e-mail têm o formato <nome>.<sobrenome>@novodomínio.com.
Então mudei os aliases para:
<nome de usuário> <nome>.<sobrenome>@novodomínio.com
Isso funciona, mas <username>@olddomain.com não funciona mais. Para piorar a situação, existem muitos scripts com endereços de e-mail codificados no estilo antigo.
Então, quero alterar <nomedeusuário>@olddomain.com -> <primeironome><sobrenome>@newdomain.com. Achei que poderia usar virtusertables para fazer isso, então criei um virtusertable que contém:
@olddomain.com % 1
Supostamente, isso deveria pegar <anybody>@olddomain.com e encaminhá-lo apenas para o nome de usuário (%1). Eu esperava que os aliases que defini traduzissem <username> -> <firstname>.<lastname>@newdomain.com. Mas, pelo que posso ver, o sendmail está ignorando completamente essa virtusertable e tentando entregar para <username>@olddomain.com e, é claro, falhando.
AFAICT Formatei o virtusertable corretamente e executei o makemap (devo usar dbm ou hash? Já vi os dois). AFAICT Coloquei o FEATURE adequado e fiz o make e verifiquei se o sendmail.cf gerado está no lugar adequado. Eu vi FEATURE expresso como ambos
RECURSO(
virtusertable',
dbm -o /etc/mail/virtusertable')
e
RECURSO(
virtusertable',
hash -o /etc/mail/virtusertable')
Mas nenhum dos dois funciona.
Que tipo de depuração ou outras informações posso fornecer e tentar?
Desde já, obrigado.
Responder1
comandos de depuração virtusertable para o usuário root
Procure @oldomain.com
a entrada em virtusertable
echo '/map virtusertable [email protected]' | sendmail -bt
Verifique se o sendmail verifica o virtusertable para endereços de e-mail olddomain.com
echo '3,0 [email protected]' | sendmail -d60.5 -bt
-d60.5
rastreia pesquisas de mapas (também pesquisas virtusertable).
Mais dicas:
m4
espera outra cotaçãoFEATURE(virtusertable,`hash /etc/mail/virtusertable')
Não torne virtusertable opcional. Retire
-o
daFEATURE
linha.
Com-o
o sendmail ignora a virtusertable ausente.Sendmail usa versão compilada do virtusertable. Use
makemap
para compilar virtusertable.virtusertable é consultado apenas para domínios de e-mail locais (
$=w
) e$={VirtHost}
domínios.Use o comando abaixo como root para obter as duas listas de domínios
echo '$=w' | sendmail -bt echo '$={VirtHost}' | sendmail -bt