[Ubuntu-BR] sendmail muito demorado
Daniel Bastos
dbastos+0 em toledo.com
Sábado Agosto 29 01:31:38 UTC 2009
In article <d9f816170908280726o65d8550aw3e4f94c34039dcef em mail.gmail.com>,
Pedro Oliveira wrote:
> [Q]uando envio um email no prompt, tipo : mail [alguem em algum.lugar,]
> demora mais de um minuto para o email ser enviado. (...) (...)
> Alguém sabe o que poderá estar acontecendo?
Oi Pedro.
Ser enviado ou chegar ao destino?
Estamos ainda entendendo o problema, certo? Você suspeita de uma longa
demora na resolução DNS? Eu sugiro investigar como o mail funciona
antes pra saber o que está envolvido. O programa strace gera um bom
começo.
Eu vejo aqui que o mail lê /etc/nsswitch.conf, /etc/resolv.conf,
/etc/hosts. Depois ele lê a stdin e escreve a mensagem que você passa
num arquivo temporário. Em seguida, ele procura pelo sendmail até
achar. Daí ele roda o sendmail, lê o arquivo temporário que ele
próprio escreveu, e escreve esse arquivo pro sendmail. Daí ele espera
o sendmail terminar, e quando isso acontece, termina sua própria
execução.
Ou seja, a lentidão pode ser provocada pelo sendmail em si. Mas como o
mail aguarda o sendmail encerrar, ele pode tomar a culpa.
O sendmail, neste caso, lê também /etc/nsswitch.conf,
/etc/resolv.conf, /etc/host.conf, /etc/hosts, e em seguida parte pra
resolução de nomes. Entretanto, ele não entrega a mensagem; ele apenas
faz uma consulta dns e entrega a mensagem ao servidor local (no meu
caso, o exim.) Ou seja, o sendmail é apenas um enfileirador, e o mail
apenas um construtor de mensagem.
Parece que realmente a única chance de atrasos seja a consulta
dns. Levando em consideração suas observações, vale a pena você exibir
os arquivos mencionados aqui pra gente dar uma olhada. As seguintes
investigações também serão úteis.
%time echo test | mail -s seu em email.com.br
%time host -t mx email.com.br
O mail executa o sendmail com as opções -oi -t. Você pode simplificar
o procedimento então o executando diretamente.
%time printf 'to: seu em email.com.br\n\ntest.' | sendmail -oi -t
real 0m0.048s
user 0m0.008s
sys 0m0.000s
%
Boa sorte.
More information about the ubuntu-br
mailing list