Help - Search - Members - Calendar
Full Version: Funcion Mail() no funciona
The Planet Forums > General > Foro en Español / Spanish Forum
Ice_dj
Recientemente he cambiado de servidor y me han avisado que no funciona la funcion mail();
en el antiguo si funcionaba y con el nuevo, sin modificar nada, los correos no llegan
He revisado en php.ini y no veo nada distintos.
¿que hay que activar en el php.ini para que funciones mail();?
En principio no hay problema por activarlo, puesto que el servidor solo lo uso yo y un amigo con una pagina de forma temporal

Gracias
el-brujo
mira en el php.ini donde pone sendmail_path y añade el path correcto (del binario del sendmail o del servidor de correo que uses).
fusionado
Igual no creo que este mal la ruta pero no esta de sobra checarla, tmb hechale un ojo a "disabled_functions" igual lo hicieron desde ahi o si la funcion esta activa y simplemente no llegan los correos, pudieras probar a enviarlos por smtp en vez de usar esa función.
Ice_dj
la ruta sendmail_fom es la siguiente: /usr/sbin/sendmail -t -i

esta identico en el otro servidor, pero en este no me envia correos.

En cuanto a disabled_functions, no me aparece esa funcion en el php.ini, en ninguno de los 2 servidores
latinwit
¿qué panel tienes?
Ice_dj
Plesk 8.1.0
latinwit
Hace un tiempo tuve que modificar un script de php para que funcione en el Plesk, lo logré agregando lo siguiente antes de la llamada:

putenv ("QMAILUSER=pirulo");
putenv ("QMAILNAME=Pirulo Lopez");
putenv ("QMAILHOST=midominio.com");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain;charset=us-ascii\r\n";
$headers .= "From: Pirulo Lopez <pirulo@midominio.com>";
$err = mail("menganito@otrodominio.com", "Algo util", "Algo realmente util", $headers);

si no funciona, revisa los logs del qmail y del apache a ver si dice algo
latinwit
También para revisar:

1) ¿Existe el archivo o link que mencionas arriba?
CODE
ls -l /usr/sbin/sendmail


2) ¿Has probado enviar un mail directamente en la línea de comandos? algo así como:

CODE
$ /usr/sbin/sendmail -t -i
To: tuemail@tudominio.com
From: root@tudominio.com
Subject: Test

test 1
test 1
test 1
test 1

terminas presionando Control y "d"
Ice_dj
QUOTE (latinwit @ Mar 29 2007, 05:35 PM) *
También para revisar:

1) ¿Existe el archivo o link que mencionas arriba?
CODE
ls -l /usr/sbin/sendmail


Si:
[xxx /]# ls -l /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 Mar 15 14:19 /usr/sbin/sendmail -> /etc/alternatives/mta
[xxx /]#

QUOTE (latinwit @ Mar 29 2007, 05:35 PM) *
2) ¿Has probado enviar un mail directamente en la línea de comandos? algo así como:

CODE
$ /usr/sbin/sendmail -t -i
To: tuemail@tudominio.com
From: root@tudominio.com
Subject: Test

test 1
test 1
test 1
test 1

terminas presionando Control y "d"


Lo he echo, y se quedan en el Mail Queue del plesk.
Ice_dj
Alguien me ayuda?
latinwit
qué dicen los logs del qmail?
Ice_dj
QUOTE (latinwit @ Apr 2 2007, 12:46 AM) *
qué dicen los logs del qmail?


Donde los puedo ver? He buscado pero no los encuentro.
latinwit
aquí: /usr/local/psa/var/log/
Ice_dj
Una vez lo tengo, que fichero tengo que mirar y que tengo que buscar?

Algo que encuentro de un mensaje que tengo en cola es esto:

Apr 1 14:41:43 server1 qmail-queue[7925]: scan: the message(drweb.tmp.VZeyIa) sent by anonymous@server1 to email@email.com should be passed without checks, because contains uncheckable addresses
Ice_dj
Algun registro nuevo:

Apr 3 08:56:43 server1 qmail-queue[6257]: mail: all addreses are uncheckable - need to skip scanning (by deny mode)
Apr 3 08:56:43 server1 qmail-queue[6257]: scan: the message(drweb.tmp.cqAg1x) sent by root@server1 to direccion@envio.com should be passed without checks, because contains uncheckable addresses
Apr 3 08:56:43 server1 qmail: 1175583403.247809 new msg 460390
Apr 3 08:56:43 server1 qmail: 1175583403.247874 info msg 460390: bytes 253 from <root@server1> qp 6273 uid 0
Apr 3 08:56:43 server1 qmail: 1175583403.255530 starting delivery 262: msg 460390 to remote direccion@envio.com
Apr 3 08:56:43 server1 qmail: 1175583403.255594 status: local 0/10 remote 1/20
Apr 3 08:57:02 server1 qmail: 1175583422.140756 delivery 262: deferral: Connected_to_212.89.0.27_but_sender_was_rejected./Remote_host_said:_421_DNS_temporary_failure_at_return_MX_check,_try_again_later_
(#4.3.0)/
Apr 3 08:57:02 server1 qmail: 1175583422.140835 status: local 0/10 remote 0/20
Ice_dj
Tenia el fichero resolv.conf mal configurado, puesto que el plesk no me resolvia nombres de dominio. Lo he configurado con las dns correctas y ya me lo resuelve, pero continuo con el problema del email.
latinwit
ok, entiendo que te funciona en la línea de comandos pero que no te funciona en el PHP ¿correcto?

si fuera así, has probado con esto:
CODE
putenv ("QMAILUSER=pirulo");
putenv ("QMAILNAME=Pirulo Lopez");
putenv ("QMAILHOST=midominio.com");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain;charset=us-ascii\r\n";
$headers .= "From: Pirulo Lopez <pirulo@midominio.com>";
$err = mail("menganito@otrodominio.com", "Algo util", "Algo realmente util", $headers);


¿que aparece en los logs?
Ice_dj
Hola

tampoco me lo envia desde linea de comandos y el error que me pone, es el error que ya puse en el post
ideasmultiples
El mensaje te indica o que el dominio de destino no tiene configurado el MX o que tus DNS no están resolviendo los datos de dominio corectamente

Prueba desde root:

# dig dominioquequierasporbar.com
y comprueba que lo resulva correctamente.
Siempe es bueno reinicializar el servicio named o incluso el server despues de reconfigurar los DNS.
Ice_dj
Antes de reiniciar el servidor

QUOTE
[root@server1 ~]# dig telecable.es

; <<>> DiG 9.2.4 <<>> telecable.es
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11304
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;telecable.es. IN A

;; AUTHORITY SECTION:
telecable.es. 3600 IN SOA otilio-pub.telecable.es. hostmaster.telecable.es. 2006111301 7200 7200 2419200 86400

;; Query time: 80 msec
;; SERVER: 83.149.80.123#53(83.149.80.123)
;; WHEN: Wed Apr 4 13:42:58 2007
;; MSG SIZE rcvd: 88


Se reinicia la maquina:
QUOTE
[root@server1 ~]# dig telecable.es

; <<>> DiG 9.2.4 <<>> telecable.es
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41186
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;telecable.es. IN A

;; AUTHORITY SECTION:
telecable.es. 3284 IN SOA otilio-pub.telecable.es. hostmaster.telecable.es. 2006111301 7200 7200 2419200 86400

;; Query time: 2 msec
;; SERVER: 83.149.80.123#53(83.149.80.123)
;; WHEN: Wed Apr 4 13:48:15 2007
;; MSG SIZE rcvd: 88


Se envia correo desde la linea de comandos, se mira en plesk que se queda encolado y no se recibe

QUOTE
Apr 4 13:51:28 server1 qmail-queue[3961]: mail: all addreses are uncheckable - need to skip scanning (by deny mode)
Apr 4 13:51:28 server1 qmail-queue[3961]: scan: the message(drweb.tmp.2xvQD4) sent by root@server1 to aaa@telecable.es should be passed without checks, because contains uncheckable addresses
Apr 4 13:51:28 server1 qmail: 1175687488.045651 new msg 460711
Apr 4 13:51:28 server1 qmail: 1175687488.045799 info msg 460711: bytes 254 from <root@server1.soylomas.org> qp 3963 uid 0
Apr 4 13:51:28 server1 qmail: 1175687488.052157 starting delivery 9: msg 460711 to remote aaa@telecable.es
Apr 4 13:51:28 server1 qmail: 1175687488.052298 status: local 0/10 remote 1/20
Apr 4 13:51:44 server1 relaylock: /var/qmail/bin/relaylock: mail from 91.124.232.129:10247 (129-232-124-91.pool.ukrtel.net)
ideasmultiples
Ese dominio no tiene asignación IP

prueba dig mail.telecable.es

o mejor todavía alguno de los dominios a los que les envían email.
Ice_dj
He reiniciado el servidor con las DNS correctas
Hice dig a los dominios a los que envio y parece que los resuelve correctamente, pero los mensajes se siguen quedando en la cola de salida.

¿Alguna idea mas?
crnunez
Tengo el mismo problema y es realmente muy extraño:

- Plesk 8.1.1
- RHEL4
- PHP 5.0.4
- Funciona desde la consola SSH con /usr/sbin/sendmail , puedo enviar mail correctamente, pero NO desde php.
- DNS y todo el resto correcto.
- Uso Qmail.

Es imposible enviar correos desde el web, o sea mediante páginas .php no sale ningún error solamente no se envía.

Configuración de php.ini

extension_dir /usr/lib/php/modules/ /usr/lib/php/modules/
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/share/pear .:/usr/share/pear
...
safe_mode On Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from me@localhost me@localhost
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off


Intento enviar con este script de prueba:
*******************
<?php
$to = "recipient@example.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>
********************

¿Alguna idea? GRACIAS!
crnunez
Bueno, solucionado biggrin.gificon_biggrin.gif Oh my god!

Hay que bajar la última versión desde Plesk, del Qmail y luego instalarla a la fuerza (te bajas todo el instalador y buscas el Qmail, después de desempaquetarlo o descomprimirlo...):

rpm -U psa-qmail-1.03-rhel4.buildlaultima.xx.i586.rpm --force

Y listo. ¿A que se debe esto? Por alguna razón extraña en algunos sistemas se compila primero PHP y después Qmail, entonces se origina una conflicto que es arreglado con la reinstalación... Pues se parece a Windows al fin al cabo hee...
paco49ers
Hola, cómo hago para bajar Qmail desde Plesk? Te refieres SERVICES - UPDATER o a bajarlo del sitio de Plesk? En cualquier caso no encuentro de como descargarlo.
Gracias por tu ayuda!

QUOTE (crnunez @ Apr 17 2007, 06:42 AM) *
Hay que bajar la última versión desde Plesk, del Qmail y luego instalarla a la fuerza (te bajas todo el instalador y buscas el Qmail, después de desempaquetarlo o descomprimirlo...):

rpm -U psa-qmail-1.03-rhel4.buildlaultima.xx.i586.rpm --force

Y listo. ¿A que se debe esto? Por alguna razón extraña en algunos sistemas se compila primero PHP y después Qmail, entonces se origina una conflicto que es arreglado con la reinstalación... Pues se parece a Windows al fin al cabo hee...
crnunez
QUOTE (paco49ers @ May 3 2007, 04:16 AM) *
Hola, cómo hago para bajar Qmail desde Plesk? Te refieres SERVICES - UPDATER o a bajarlo del sitio de Plesk? En cualquier caso no encuentro de como descargarlo.
Gracias por tu ayuda!


Perdón por el retraso, debes bajar todo el Plesk 8.1.1 o la versión que te corresponda... lo descomprimis dentro de un directorio y buscas el directorio /dist-rpm-Redhat-el4-i386/base/ dentro del directorio base se encuentra el archivo de qmail mencionado arriba.

Nota: "rpm-Redhat-el4-i386", puede variar según tu versión de O.S.

Saludos.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.