2011-05-06 13 views
7

Mi ISP ha bloqueado el puerto 25 para enviar correos de PHP y, en su lugar, ha permitido que se utilicen los puertos 587 o 465. ¿Cómo fuerzo la función de correo php para usar el puerto 587 en lugar de la predeterminada 25? Por cierto: estoy en OSX 10.6.6 utilizando MAMP PROcambiar el puerto smtp de 25 a 587?

ACTUALIZACIÓN: He intentado cambiar la configuración en php.ini a este

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 587 

como soy en mac no creo que esto puede ser la solución para mí, y no está funcionando después de que lo intenté. me da el siguiente mensaje de error.

May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2822]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2823]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2827]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2825]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 
May 6 20:32:25 Ibrahim-Armars-MacBook-Pro postfix/smtp[2828]: connect to alt2.aspmx.l.google.com[74.125.159.27]:25: Operation timed out 

¿ves que todavía está tratando de conectarse a través del puerto 25? ¿Cómo lo cambio en Mac?

Respuesta

5

Cambio smtp_port sólo afecta a la forma en mail() interactúa con el servidor especificado por SMTP ajuste. Este no es el problema. La cuestión es que:

  1. Está utilizando su máquina local que el servidor SMTP - Y
  2. Su ISP está bloqueando el servidor SMTP local (postfix) a partir de mensajes de retransmisión a Gmail

Primera , read this thread. Discute el mismo problema exacto. El resultado es que necesita usar un servidor de correo diferente, preferiblemente el servidor de correo de su ISP. ¿Qué servidor y puerto le indica su ISP que use para el correo saliente si desea usar sus servicios de correo electrónico? Debería poder usar esto desde su PHP ejecutándose localmente como lo haría con un cliente de correo electrónico como Thundebird, y usted será podrá enviarlo a Gmail.

+0

utilicé el servidor smtp de gmail y edité algún archivo de configuración de postfix y funciona perfectamente bien. Gracias por el consejo. –

3

Establezca smtp_port = 587 en su php.ini. Ver http://php.net/manual/en/mail.configuration.php

EDITAR

Como se señaló AJ, esto no va a solucionar el problema si usted está utilizando su postfix o sendmail local, lo que lo hace especificando smtp = localhost. Intente configurar eso en la dirección del servidor SMTP de su ISP.

Esto podría provocar el siguiente problema si también requieren autenticación antes de permitir el envío de correo, lo que hacen muchos ISP. En ese caso, su mejor opción sería Pear Mail package. Eso, por cierto, también le permitirá especificar el servidor de correo y el puerto en su secuencia de comandos. A partir de la documentación:

$params["host"] - The server to connect. Default is localhost. 
$params["port"] - The port to connect. Default is 25. 
$params["auth"] - Whether or not to use SMTP authentication. Default is FALSE. 
$params["username"] - The username to use for SMTP authentication. 
$params["password"] - The password to use for SMTP authentication. 
+0

Dice que se usa solo en Windows, pero ves que estoy en mac, ¿cómo lo cambio en mac? –

+0

Consulte el comentario en el manual de PHP: "A pesar de lo que dice esta página sobre los ajustes" SMTP "y" smtp_port "que se utilizan solo en Windows, todos los sitios de Drupal utilizan esta configuración para enviar correos electrónicos, independientemente del sistema operativo en el que se ejecutan. " –

+0

he actualizado mi publicación. eche un vistazo a –

1

Puede editar el archivo php.ini (si tiene acceso) y establecer smtp_port = 587 o en su código, ini_set('smtp_port', 587).

0

Si puede, intente anular la configuración de smtp_port con ini_set(). debe ser algo como esto:

ini_set('smtp_port', 587); 
0

Para aquellos de ustedes que usan MAMP y no pueden enviar el correo de la función php mail() porque el puerto 25 está bloqueado por el ISP (en mi caso) aquí hay información para que lo resuelvan. como OSX usa postfix para enviar correos electrónicos y si planeas usar un servidor smtp externo como smtp.gmail.com que utilicé aquí es lo que deberías hacer.es necesario configurar Postfix para utilizar Gmail como un servidor de retransmisión

a) Abrir MAMP y en el posfijo cambiar el dominio de correo saliente a smtp.gmail.com

b) terminal abierto y escriba sudo vi /etc/postfix/main.cf esta voluntad pregunta por tu contraseña de administrador ingrésala y se abrirá main.cf en el editor vi

c) presiona ctrl + f y ve al final del archivo y lleva el cursor una línea hacia abajo desde el final y presiona a , el editor ahora cambiará al modo insertar para editar el archivo.

en main.cf anexar esta configuración

relayhost = [smtp.gmail.com]:587 

smtp_tls_security_level = verify 
#smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt 
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache 

smtp_sasl_auth_enable = yes 
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
smtp_sasl_security_options = noanonymous 

prensa : WQ para salir de vim. De vuelta en el tipo concha sudo vi /etc/postfix/sasl_passwd e introduzca la siguiente (sustituya su dirección y contraseña de Gmail Gmail):

[smtp.gmail.com]:587 [email protected]:mypassword 

nuevo pulse : WQ para guardar y salir del archivo, y ejecutar el siguiente comando

sudo postmap /etc/postfix/sasl_passwd 
sudo postfix reload 

Espero que esto ayude a alguien con el mismo problema al que me enfrenté.

Cuestiones relacionadas