2011-09-28 13 views
17

estoy usando Ubuntu.I instalado sendmail en mi máquina local con el siguiente comandoEnvío de correo lleva mucho tiempo en localhost

sudo apt-get install sendmail 

Ahora me gustaría comprobar si el correo va de mi localhost usando siguiente código php.

<?php 
$to = "[email protected]"; 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
?> 

Cuando ejecuto el código, toma mucho tiempo y finalmente repite el mensaje como Correo Enviado. ¿Hay alguna posibilidad de arreglar esto?

+0

¿actualizar su servidor? o tal vez usted tiene un problema de búsqueda dns? –

+0

quizás esta es una pregunta mejor para Server Fault: http://serverfault.com/ –

+0

Ejecute su script bajo 'strace -f' para determinar en qué llamada se detiene. – sanmai

Respuesta

0

El retraso generalmente indica un tiempo de espera de DNS. ¿Su máquina está configurada con las entradas de DNS adecuadas? Intentaría hacer una prueba usando el correo en la línea de comando ya que esto aislaría el problema.

0

A menos que conozca bien Sendmail, probablemente estará mejor instalando algún otro MTA. ssmtpd ya fue sugerido en otra respuesta; una opción común es Posfix.

13

Editar el archivo /etc/hosts y asegúrese de que la primera línea es la siguiente:

127.0.0.1 localhost localhost.localdomain myhostname

Editar el archivo de configuración sendmail (/etc/mail/sendmail.cf en Ubuntu) y Descomentar el line #O:

O HostsFile =/etc/hosts

Reinicia la computadora o ejecuta sudo service sendmail restart.

La computadora debería arrancar mucho más rápido ahora y la función mail() debería regresar casi de inmediato.

Sin embargo, los correos electrónicos no serán efectivos enviados a menos que siga el paso 5.

Debe nuevo uso de la opción de -f sendmail siempre que use la función de correo.

Por ejemplo:

mail('[email protected]', 'the subject', 'the message', null, '[email protected]'); 
+19

paso 5? No hay 'pasos' en su respuesta. – MrVimes

+0

Gracias! ¡Esto hizo el truco para mi Vagrant Box! –

+2

paso 5 proviene de esta pregunta http://serverfault.com/questions/173762/php-mail-function-painfully-slow-on-local-development-machine/221894#221894 – cirovladimir

2

Sé que esta pregunta ya ha sido contestada, pero estoy publicando esto con la esperanza de que pueda ayudar a otra persona en busca de una solución diferente a este problema.

Para mí, solo necesitaba poner el Nombre de dominio completo (FQDN) de mi servidor en /etc/mailname. Por ejemplo: server.example.com.

Reinicie Sendmail para aplicar los cambios.

$ sudo service sendmail restart

Cuestiones relacionadas