Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/10/2009, 21:46
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años, 7 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.