2011-01-10 14 views
22

Estoy aprendiendo PHP y he instalado Xampp en mi computadora.configuración de correo php en xampp

Pero tengo un problema con la configuración ya que la opción de correo electrónico no parece estar funcionando.

Después de hacer un poco de lectura Creo que tiene algo que ver con lo de abajo, conocer en mi servidor en el archivo php.ini

[mail function] 
; For Win32 only. 
; *hp://*php.net/smtp 
SMTP = localhost 
; http://php.net/smtp-port 
smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = [email protected] 

[Tenga en cuenta que he cambiado por encima de hp: // desde http: // debido a una restricción en este sitio web para publicar un hipervínculo]

¿Hay algo que deba cambiar? He visto software como swiftmailer mencionado, pero no sé si Xampp ya lo ha incluido. ¡Cualquier consejo sería muy apreciado!

Gracias James

+6

Xampp incluye Mercury. ¿Lo estableciste? Creo que los documentos también incluyen un capítulo sobre cómo hacer que PHP funcione con él –

Respuesta

13

Mi servidor SMTP favorito es hMailServer.

Tiene un buen instalador y asistente de Windows. Indiscutiblemente el servidor de correo más fácil que he configurado.

Puede hacer un proxy a través de su cuenta de gmail/yahoo/etc. o enviar un correo electrónico directamente.

Una vez que está instalado, el correo electrónico en xampp simplemente funciona sin cambios de configuración.

+1

Hola Byron, ¿hay algún tutorial sobre cómo configurar el proxy hMailserver para enviar correos electrónicos a gmail y yahoo? – jasper

+0

¿Está relacionado solo con ventanas? –

+0

@ByronWhitlock hay alguna alternativa para Linux –

5

A menos que tenga un servidor de correo configurado en su computadora local, establecer SMTP = localhost no tendrá ningún efecto.

En tiempos pasados ​​(hace mucho tiempo), era suficiente establecer el valor de SMTP a la dirección del servidor SMTP de su ISP. Esto ahora raramente funciona porque la mayoría de los ISP insisten en la autenticación con un nombre de usuario y contraseña. Sin embargo, la función PHP mail() no es compatible con la autenticación SMTP. Está diseñado para trabajar directamente con el agente de transporte de correo del servidor local.

Debe configurar un servidor de correo local o utilizar una clase PHP que admita la autenticación SMTP, como Zend_Mail o PHPMailer. La solución más simple, sin embargo, es cargar su secuencia de comandos de procesamiento de correo a su servidor remoto.

7

XAMPP debería haber venido con un programa sendmail "falso". En ese caso, puede utilizar Sendmail así:

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
;SMTP = localhost 
; http://php.net/smtp-port 
;smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = [email protected] 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -i" 

Sendmail debería tener un sendmail.ini con ella; se debe configurar como modo:

# Example for a user configuration file 

# Set default values for all following accounts. 
defaults 
logfile "C:\xampp\sendmail\sendmail.log" 

# Mercury 
#account Mercury 
#host localhost 
#from [email protected] 
#auth off 

# A freemail service example 
account ACCOUNTNAME_HERE 
tls on 
tls_certcheck off 
host smtp.gmail.com 
from EMAIL_HERE 
auth on 
user EMAIL_HERE 
password PASSWORD_HERE 

# Set a default account 
account default : ACCOUNTNAME_HERE 

Por supuesto, cambia ACCOUNTNAME_HERE con un nombre de cuenta arbitraria, reemplace EMAIL_HERE con un correo electrónico válido (tal como Gmail o Hotmail), y reemplace PASSWORD_HERE con la contraseña a su correo electrónico. Ahora, deberías poder enviar correos. Recuerde reiniciar Apache (desde el panel de control o los archivos por lotes) para permitir que los cambios a PHP funcionen.