Foros del Web » Programando para Internet » PHP » Configuración PHP »

Problema función mail o puerto 25?

Estas en el tema de Problema función mail o puerto 25? en el foro de Configuración PHP en Foros del Web. Hola, buenas noches... Miren, tengo el siguiente problema... Tengo el siguiente código hecho en PHP : Código PHP: <?php function  validarDominio ( $domain ) { ...
  #1 (permalink)  
Antiguo 10/10/2009, 21:46
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 18 años, 11 meses
Puntos: 27
Problema función mail o puerto 25?

Hola, buenas noches...

Miren, tengo el siguiente problema... Tengo el siguiente código hecho en PHP:

Código PHP:
<?php

function validarDominio($domain)
{
    
getmxrr($domain$mx_records$mx_weight);
    return (
count($mx_records) > 0);
}

function 
validarEmail($value)
{
    
$reg_exp"/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$/";
    
$result=preg_match($reg_exp$value);
    if (
$result)
    {
        
//validar el registro mx del dominio
        
$mailparts=explode("@",$value);
        
$retVal=validarDominio($mailparts[1]);
    }
    else
    {
        
$retVal=false;
    }
    return 
$retVal;
}

$email=$_POST['email'];

if(
validarEmail($email))
{
    
//Estoy recibiendo el formulario, compongo el cuerpo
    
$cuerpo "Formulario enviado desde la pagina web www.pathfinding.com.mx\n";
    
$cuerpo .= "Nombre: " $_POST["nombre"] . "\n";
    
$cuerpo .= "Teléfono(LADA): " $_POST["lada"] . " " $_POST["telefono"] . "\n";
    
//$cuerpo .= "Email: " . $_POST["email"] . "\n";
    
$cuerpo .= "Servicio: " $_POST["select"] . "\n";
    
$cuerpo .= "Tipo de Solicitud: " $_POST["botonradio1"]  . "\n";
    
$cuerpo .= "Mensaje: " $_POST["comentarios"] . "\n";

    
//Definimos las cabeceras
    
$header "From:".$_POST["email"]."\nReply-To:".$_POST["email"]."\n";
    
$header .= "X-Mailer:PHP/".phpversion()."\n";
    
$header .= "Mime-Version: 1.0\n";
    
$header .= "Content-Type: text/plain";

}
else
{
    echo 
"Dirección de email inválida";
}

mail("[email protected]","Formulario recibido",$cuerpo,$header);

echo 
"Gracias por rellenar el formulario. Se ha enviado correctamente.";

?>
Y mi configuración de la función mail en PHP.ini es la siguiente:

Cita:
[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]
Tengo instalado el miniRelay, el cuál tiene la siguiente configuración:

Cita:
[Configuration]
StartWithWindows=0
CloseWhenIdle=0
SecondsForIdle=15
CancelClose=0
CancelCloseText=
UseLog=0
MaxLinesLog=200
MaxThreads=3
MaxRetrys=3
DNSDetection=0
DNSServers=
StartInTray=1
MinimizeToTray=1
CloseToTray=1
FontName=MS Sans Serif
FontSize=8
FontColor=0
FontStyles=0
Port=25
Timeout=6
DNSTimeout=6
OthersIPMask=
AllowOthers=0
Remove_X-Mailer=0
RemoveHeaders=0
Headers2Delete=
AddHeaders=0
Headers2Add=
NoReturnMessages=0
Width=513
Height=262
Top=29
Left=22
Language=Español
LastCachePurge=10/10/2009
[DNS_DynamicCache]
gmail.com=10/10/2009#gmail-smtp-in.l.google.com#alt1.gmail-smtp-in.l.google.com#alt2.gmail-smtp-in.l.google.com#alt3.gmail-smtp-in.l.google.com#alt4.gmail-smtp-in.l.google.com
hotmail.com=10/10/2009#mx1.hotmail.com#mx2.hotmail.com#mx3.hotmail.c om#mx4.hotmail.com
Sin embargo, me aparece el siguiente error:

Cita:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\script_contacto.php on line 54
Gracias por rellenar el formulario. Se ha enviado correctamente.
El protocolo SMTP, por el puerto 25 no me funciona, y pienso que el problema es en sí el puerto, no el código PHP, ni el miniRelay ni el PHP.ini, pero no sé como habilitar el puerto 25, alguien podría ayudarme con este problema o si realmente hay algún error en PHP.

Gracias de antemano. Saludos.
  #2 (permalink)  
Antiguo 12/10/2009, 07:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema función mail o puerto 25?

Es probable que tengas un firewall o algún programa similar que este bloqueando el acceso a ese puerto.

Saludos.
  #3 (permalink)  
Antiguo 12/10/2009, 08:52
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 18 años, 11 meses
Puntos: 27
Respuesta: Problema función mail o puerto 25?

He deshabilitado el firewall de Windows, incluso, he habilitado el puerto 25 en las configuraciones del Firewall. Tengo Panda Antivirus y lo he deshabilitado también.

La configuración del modem/router, el cual es 2Wire, he habilitado el puerto 25 en TCP y aún así, sigo teniendo este error.

Intentaré nuevamente, posteo los resultados.

Saludos y gracias por la respuesta. Es tu perro el de la foto?
  #4 (permalink)  
Antiguo 18/10/2009, 22:09
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 18 años, 11 meses
Puntos: 27
Respuesta: Problema función mail o puerto 25?

Bueno, aquí nuevamente...

Cambie el puerto usado para SMTP (25), por el puerto 587, tengo una cuenta configurada en Thunder Bird de gmail y funciona perfectamente, por lo tanto decidí usar ese puerto.

Lo cambie en el archivo de php.ini, en la configuración del miniRelay y lo habilité en el router (2Wire).

Al parecer el archivo de contato de php ya estaba funcionando, al enviar la información, pasa a la pantalla de envio del mensaje, y cuando veo el miniRelay, aparece lo siguiente:

Cita:
20:52:26 Escuchando en "(IP)" (Puerto 587)
20:52:39 Comando: MAIL FROM <[email protected]>
20:52:39 Comando: RCPT TO <[email protected]>
20:52:39 [1] Dominio MX de hotmail.com cacheado
20:52:39 [1] Conectando con mx1.hotmail.com
20:53:00 [1] Error: Connect timed out.
20:53:00 [1] Conectando con mx1.hotmail.com
20:53:21 [1] Error: Connect timed out.
20:53:21 [1] Conectando con mx1.hotmail.com
20:53:42 [1] Error: Connect timed out.
20:53:42 [1] Conectando con mx2.hotmail.com
20:54:03 [1] Error: Connect timed out.
20:54:03 [1] Conectando con mx2.hotmail.com
20:54:24 [1] Error: Connect timed out.
20:54:24 [1] Conectando con mx2.hotmail.com
20:54:45 [1] Error: Connect timed out.
20:54:45 [1] Conectando con mx3.hotmail.com
20:55:06 [1] Error: Connect timed out.
20:55:06 [1] Conectando con mx3.hotmail.com
20:55:27 [1] Error: Connect timed out.
20:55:27 [1] Conectando con mx3.hotmail.com
20:55:48 [1] Error: Connect timed out.
20:55:48 [1] Conectando con mx4.hotmail.com
20:56:09 [1] Error: Connect timed out.
20:56:09 [1] Conectando con mx4.hotmail.com
20:56:30 [1] Error: Connect timed out.
20:56:30 [1] Conectando con mx4.hotmail.com
20:56:51 [1] Error: Connect timed out.
20:56:51 [1] ERROR: Se ha reintentado el envio 3 veces, devolviendo mensaje
El código de PHP ya pasa sin error, pero se queda sin enviar, por lo tanto creo que sigue algo mal en el puerto para SMTP.

¿Alguna idea?

Saludos
  #5 (permalink)  
Antiguo 19/10/2009, 14:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema función mail o puerto 25?

Los timeouts que te da es porque hotmail generalmente rechaza una conexión cuando viene de una IP dinámica para evitar el SPAM, por eso lo mejor es usar un servidor SMTP externo y que este sea el encarado de hacer el envío.

Saludos.
  #6 (permalink)  
Antiguo 15/11/2009, 13:32
(Desactivado)
 
Fecha de Ingreso: octubre-2009
Ubicación: Venezuela
Mensajes: 42
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: Problema función mail o puerto 25?

Disculpa tu estas utilizando windows y es un servidor casero? y tienes coneccion con cantv?
por que a mi me funsiona bien de esta manera

Código PHP:
;;;;;;;;;;;;;;;;;;;
Module Settings ;
;;;;;;;;;;;;;;;;;;;

[
Syslog]
Whether or not to define the various syslog variables (e.g$LOG_PID,
$LOG_CRONetc.).  Turning it off is a good idea performance-wise.  In
runtimeyou can define these variables by calling define_syslog_variables().
define_syslog_variables  Off

[mail function]
; For 
Win32 only.
SMTP mail.cantv.net

; For Win32 only.
sendmail_from davidtorres@cantv.net

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;
sendmail_path 
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:45.