Foros del Web » Programando para Internet » PHP »

PHP.ini en Linux enviar emails a través de smtp

Estas en el tema de PHP.ini en Linux enviar emails a través de smtp en el foro de PHP en Foros del Web. Hola, Os comento, tengo dos servidores en Linux, uno que tiene qmail instalado y el otro php. ¿Como configurar el php.ini para que envie el ...
  #1 (permalink)  
Antiguo 18/11/2005, 03:44
Avatar de Tk421  
Fecha de Ingreso: agosto-2001
Ubicación: Australia
Mensajes: 384
Antigüedad: 16 años, 3 meses
Puntos: 0
PHP.ini en Linux enviar emails a través de smtp

Hola,

Os comento, tengo dos servidores en Linux, uno que tiene qmail instalado y el otro php.

¿Como configurar el php.ini para que envie el email a través del smtp del otro servidor?

Nota ... Al parecer te fuerzan en Linux a usar un servidor interno (sendmail y de mas), ya que la opcion SMTP (para especificar el servidor SMTP) solo funciona en windows según comenta php.net ...

¿Alguna idea?
__________________
Tk421
Configuration management for Linux
  #2 (permalink)  
Antiguo 18/11/2005, 06:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Nota ... Al parecer te fuerzan en Linux a usar un servidor interno (sendmail y de mas), ya que la opcion SMTP (para especificar el servidor SMTP) solo funciona en windows según comenta php.net ...
No, no es cierto, pese que el própio php.ini dice ese comentario.

Te lo menciono por experiencia, tengo un servidor Linux con Postfix y lo usa PHP (en "local" en ese caso por qué están en el mismo servidor) pero también lo he usado en modo remoto (PHP en otro servidor diferente al del SMTP)

En el servidor que te comento NO uso sendmail (de hecho lo desinstalé para sólo usar Postfix) y mi php.ini al respecto dice algo tipo:

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

; For Win32 only.
;sendmail_from = [email protected]

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = /usr/sbin/sendmail -t -i

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

(comenté hasta la línea que hace referencia a sendmail ...)

Lo único que tienes que tener presente es:

1) mail() de PHP usa la configuración de tu PHP.ini sobre la IP del servidor de correo que uses SMTP .. (SMTP = ....) y el puerto que este atiende.

2) NO permite autentificación. (Por si tu servidor SMTP la requiere ...)

3) Ten presente el hecho de la comunicación entre ambos servidores para habilitar los puertos/redireccionamientos que correspondan en Firewall's si es que los usas en alguno de los servidores o en ambos.

Si tienes tu servidor SMTP configurado para requerir autentificación (por temas de no exponerlo como Relay abierto .. etc ...), no uses la función mail() de PHP (la cual no te permite realizar la autentificación necesaria en esos casos). Usa en su defecto:

PHP Mailer
http://phpmailer.sourceforge.net

(de hecho podrias usarla de todas maneras: es un complemento y mejora a mail() en muchos aspectos)

Un saludo,
  #3 (permalink)  
Antiguo 20/11/2005, 11:50
Avatar de Tk421  
Fecha de Ingreso: agosto-2001
Ubicación: Australia
Mensajes: 384
Antigüedad: 16 años, 3 meses
Puntos: 0
mmm ...

Habia intentado forzarlo de la misma manera que me has comentado. El caso es que fué extraño, puesto que los emails no eran enviados y en el log de errores de php no habia ningún registro referente a ese error. ¿Sabes donde podría encontrar algún dato, error, o algo del email que no fué enviado? Volveré a intentarlo de todas maneras. Si no tiraré de phpmailer, pero sólo como última opción, ya que la aplicación es grande y se envian emails desde distintos puntos ... Se me ocurre: ¿Se derá recompilar el php en Linux especificando la opción para activar la opción SMTP, si realmente no me funciona?

Por otra parte solo comentar que tengo el qmail (en mi caso) con open relay para la red local donde están los servidores.
__________________
Tk421
Configuration management for Linux
  #4 (permalink)  
Antiguo 21/11/2005, 07:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El soporte SMTP creo que viene por defecto activado (se puede desactivar?) lo que si que requiere es la configuración en tu php.ini de los datos que hemos mencionado anteriormente.

Los errores concretos si PHP no los produce (es decir, que consiguió entregar el e-mail al MTA que uses o servidor SMTP que indiques) estarán en los log's de tu servidor SMTP (si es que llegó el e-mail a el) o en tu firewall si es que los bloqueó este.

Un saludo,
  #5 (permalink)  
Antiguo 21/11/2005, 09:20
Avatar de Tk421  
Fecha de Ingreso: agosto-2001
Ubicación: Australia
Mensajes: 384
Antigüedad: 16 años, 3 meses
Puntos: 0
mmm ... me parece que el mail del php te esta funcionando por casualidad ... o eso o la version que estoy usando tiene un BUG y la documentación esta equivocada ...

1) Si no pones ningún valor en el parametro sendmail_path por defecto te pone el valor /usr/sbin/sendmail -t -i

2) No queda ningún registro del email que envio y que nunca llega ... si comento la opcion sendmail_path y pongo la de SMTP y smtp_port, el servidor que lo envía no es el que esta especificado en SMTP, es localhost (¿quiza por eso te funciona?)

3) Si ademas de poner SMTP y smtp_port, fuerzo el valor de sendmail_path="", el email se debe quedar en el limbo de php por que no hay rastro de él, ni en los logs, ni na ...

Alguna idea?
__________________
Tk421
Configuration management for Linux
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:19.