Antecedentes: si ha configurado un servidor apache local para fines de desarrollo, es posible que se haya encontrado con el problema de que sendmail tarda mucho (al menos un minuto) en enviar correos electrónicos. Esto es extremadamente frustrante si está intentando depurar un problema con un correo electrónico que ha generado.
Hay varias publicaciones en el foro en Internet que analizan este problema. Sin embargo, ninguno de los temas describe qué hacer con suficiente detalle para mi conocimiento limitado. Estos son los pasos que me funcionaron:
1) encuentre su nombre de host (en caso de que lo haya olvidado) usando este comando:
:~$ cat /hosts/hostname
myhostname
2) edite el archivo /etc/hosts
y asegúrese de que la primera línea sea la siguiente:
127.0.0.1 localhost.localdomain localhost myhostname
3) edite el archivo de configuración de sendmail ( /etc/mail/sendmail.cf
en Ubuntu) y descomente la línea#O HostsFile=/etc/hosts
4) Reinicie la computadora. La computadora debería iniciarse mucho más rápido ahora y la función mail () debería regresar casi de inmediato. SIN EMBARGO, los correos electrónicos no se enviarán a menos que siga el paso 5.
5) Debe usar la opción sendmail '-f' siempre que use la función de correo. Por ejemplo:
mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com');
Mi pregunta para mis compañeros servidoresfaulters es:
¿Qué cambios adicionales se pueden hacer para que no tenga que usar la opción sendmail -f? Aunque no es muy difícil agregar la opción -f, es un problema cuando su CMS (como Drupal) no usa la opción -f al enviar correo. Necesitaría hackear un módulo central para agregar esta opción.
cat /etc/hostname