EDIT 8 de novembro de 2015:
A solução é usar
hosts_require_auth = <; $host_address
hosts_require_tls = <; $host_address
Em vez de
hosts_require_auth = smtp.sendgrid.net
hosts_require_tls = smtp.sendgrid.net
A sintaxe <;
de aparência incomum está no caso do nome do host resolver para um endereço IPv6 (já que parece que os dois-pontos em um endereço IPv6 podem quebrar as coisas de outra forma). A variável $ host_address é usada para resolver o caso em que o endereço IP que o nome do host resolve muda (como neste caso com smtp.sendgrid.net resolvendo para vários IPs e, às vezes, um diferente sendo resolvido para mid-process) - I acho que isso impede que ele precise ser consultado novamente (veja também The smtp transporte ). Crédito Configurando o Exim para usar o Gmail como um Smarthost e também o OP e o @wurtel.
RESPOSTA ANTERIOR / COMO TESTAR E REPRODUZIR ::
Acredito que o comentário de @ wurtel sobre a questão da alteração do endereço IP está correto, pois posso reproduzir de forma confiável isso usando um script para alterar rapidamente qual IP smtp.sendgrid.net resolve. Eu também confirmei que sem qualquer entrada no arquivo hosts, esse problema acontece pelo menos a cada 2 horas quando eu estou enviando um e-mail a cada 5 segundos, mas quando eu codifiquei um IP em / etc / hosts, fui por 8 horas sem erros nessa frequência de envio, então essa é a solução temporária que estou usando por enquanto.
Veja como eu reproduzi esse problema. OBSERVAÇÃO: isso é atual até o final de outubro de 2015 - se você tentar depois os IPs podem ser diferentes, execute dig smtp.sendgrid.net
e use dois IPs em vez disso.
Adicione isto a / etc / hosts
108.168.190.108 smtp.sendgrid.net
Salve isso em um arquivo PHP, substituindo [email protected] por um endereço de e-mail que você controla.
#!/usr/local/bin/php
<?php
while (true) {
mail('[email protected]', 'Test email deletethiswithafilter', 'test ' . time());
usleep(500000);
}
Salve isso em um arquivo PHP e execute-o enquanto o acima está sendo executado também. A cada 5ms - 15ms, irá alternar a entrada no arquivo hosts para smtp.sendgrid.net entre os dois IPs que resolve para o qual são 158.85.10.138 e 108.168.190.108
#!/usr/local/bin/php
<?php
while (true) {
passthru('new_hosts_file_contents='cat /etc/hosts | sed \'s/108.168.190.108/ip108/g\' | sed \'s/158.85.10.138/ip158/g\' | sed \'s/ip108/158.85.10.138/g\' | sed \'s/ip158/108.168.190.108/g\''; echo "$new_hosts_file_contents" > /etc/hosts 2>&1');
usleep(10000 + rand(-5000,5000));
}