Antecedentes: Se você configurou um servidor apache local para fins de desenvolvimento, pode ter encontrado um problema no qual o sendmail leva muito tempo (pelo menos um minuto) para enviar e-mails. Isso é extremamente frustrante se você estiver tentando depurar um problema com um email que você gerou.
Existem várias postagens no fórum na internet que discutem esse problema. No entanto, nenhum dos temas descreveu o que fazer em detalhes suficientes para o meu conhecimento limitado. Aqui estão as etapas que funcionaram para mim:
1) encontre o seu nome de host (caso você tenha esquecido) usando este comando:
:~$ cat /hosts/hostname
myhostname
2) edite o arquivo /etc/hosts
e verifique se a primeira linha é a seguinte:
127.0.0.1 localhost.localdomain localhost myhostname
3) edite o arquivo de configuração do sendmail ( /etc/mail/sendmail.cf
no Ubuntu) e descomente a linha#O HostsFile=/etc/hosts
4) Reinicie o computador. O computador deve inicializar muito mais rápido agora e a função mail () deve retornar quase imediatamente. NO ENTANTO, os e-mails não serão realmente enviados, a menos que você siga a etapa 5.
5) Você deve usar a opção sendmail '-f' sempre que usar a função de email. Por exemplo:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Minha pergunta para meus colegas serverfaulters é:
Que outras alterações podem ser feitas para que eu não precise usar a opção sendmail -f? Embora não seja muito difícil adicionar a opção -f, é um problema quando o CMS (como o Drupal) não usa a opção -f ao enviar email. Você precisaria hackear um módulo principal para adicionar esta opção.
cat /etc/hostname