[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