Em um ambiente corporativo, temos um servidor de e-mail que possui apenas as portas 25/tcp e 587/tcp disponíveis.
Quando usamos scripts Perl (usando HTML::Mail) para enviar centenas de e-mails legítimos, ocasionalmente falha com "Falha ao conectar ao servidor de e-mail".
Sentimos que a carga pesada no servidor sendmail está fazendo com que ele rejeite a conexão, ou talvez nem responda à solicitação inicial.
Agora, a equipe proprietária do servidor de e-mail não coopera e exige prova de que o servidor rejeitou a conexão.
Pergunta: Quais informações podem ser coletadas do lado do cliente em caso de falha, assumindo que o problema esteja no lado do servidor? Como provar que o problema está no lado do servidor, desde que seja realmente o caso?
[[Não tenho certeza se esta pergunta é válida aqui; Não posso pedir ajuda para resolver o problema quando o problema em si não está claro; Estou pedindo uma pequena lista de dicas e truques para ajudar a depurar esse problema; Eu estaria até aberto a sugestões sobre soluções alternativas]]
Responder1
A solução é a equipe do sendmail examinar o arquivo "/etc/mail/sendmail.mc":
dnl #
dnl # The following limits the number of processes sendmail can fork to accept
dnl # incoming messages or process its message queues to 20.) sendmail refuses
dnl # to accept connections once it has reached its quota of child processes.
dnl #
dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl
dnl #
dnl # Limits the number of new connections per second. This caps the overhead
dnl # incurred due to forking new sendmail processes. May be useful against
dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address
dnl # limit would be useful but is not available as an option at this writing.)
dnl #
dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl
(Treat "dnl" as a comment leadin string.)
Se você está apenas enviando e-mails, provavelmente deveria restringi-los.
Responder2
Registre mensagens de erro e a hora EXATA em que os problemas ocorrem. Deve ajudar os administradores do sendmail a identificar problemas nos arquivos de log.
Com o envio em massa você deve:
a) reutilizar a conexão SMTP para enviar muitos e-mails (por exemplo, 50)
b) limitar o número de mensagens enviadas por segundo (por exemplo, 20-50)
Outras medidas que eu poderia sugerir seriam específicas do sendmail e exigiriam a cooperação dos administradores do sendmail.