Contesto: se hai impostato un server Apache locale per scopi di sviluppo, potresti aver riscontrato il problema in cui sendmail impiega molto tempo (almeno un minuto) per inviare e-mail. Ciò è estremamente frustrante se stai cercando di eseguire il debug di un problema con un'email che hai generato.
Ci sono molti post sul forum su Internet che discutono di questo problema. Tuttavia, nessuno dei temi ha descritto cosa fare in modo sufficientemente dettagliato per la mia conoscenza limitata. Ecco i passaggi che hanno funzionato per me:
1) trova il tuo nome host (nel caso lo avessi dimenticato) usando questo comando:
:~$ cat /hosts/hostname
myhostname
2) modifica il file /etc/hosts
e assicurati che la prima riga sia la seguente:
127.0.0.1 localhost.localdomain localhost myhostname
3) modifica il file di configurazione di sendmail ( /etc/mail/sendmail.cf
in Ubuntu) e Rimuovi il commento#O HostsFile=/etc/hosts
4) Riavvia il computer. Il computer dovrebbe avviarsi molto più velocemente ora e la funzione mail () dovrebbe tornare quasi immediatamente. TUTTAVIA, le e-mail non verranno effettivamente inviate se non segui il passaggio 5.
5) Devi usare di nuovo l'opzione '-f' di sendmail ogni volta che usi la funzione mail. Per esempio:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
La mia domanda per i miei compagni serverfaulters è:
Quali ulteriori modifiche possono essere apportate in modo da non dover utilizzare l'opzione sendmail -f? Anche se non è molto difficile aggiungere l'opzione -f, è un problema quando il tuo CMS (come Drupal) non usa l'opzione -f durante l'invio di posta. Dovresti hackerare un modulo principale per aggiungere questa opzione.
cat /etc/hostname