Ver Mensaje Individual
  #18 (permalink)  
Antiguo 04/09/2005, 04:28
Avatar de DvD AdN
DvD AdN
 
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 19 años
Puntos: 0
Si usas un mailto: se va a abrir el gestor de correo (outllok o el que tengan instalado), con php el encargado de enviar el mail es php(mas bien el servidor smtp, php solo "le pasa" el mensaje al smtp), asi si uno no tiene un gestor de correo de todas formas puede enviar el mail y también se evita lo gorroso que es que se te habra un programa mientras navegas.

La validación del correo lo puedes hacer con javascript (lado cliente) o con php (lado servidor).

Aqui les paso un script de envio de mail un poquillo mejorado.

Código PHP:
<?

/*Función para validar e-mail con Exprexiones Regulares*/
function check_email($email) {
    
//caracteres permitidos en el nombre: 0-9a-Z-._ en el host: 0-9a-Z-. entre los 2: @
    
if (!preg_match('/^[0-9a-zA-Z\.\-\_]+\@[0-9a-zA-Z\.\-]+$/'$email))
        return 
False;

    
//Nombre debe empezar con algún caracter alfanumerico
    
if ( preg_match('/^[^0-9a-zA-Z]|[^0-9a-zA-Z]$/'$email))
        return 
False;

    
//Nombre debe terminar con algún caracter alfanumerico
    
if (!preg_match('/([0-9a-zA-Z_]{1})\@./',$email) )                    
        return 
False;

    
//Host debe empezar con algún caracter alfanumerico
    
if (!preg_match('/.\@([0-9a-zA-Z_]{1})/',$email) )                    
        return 
False;

    
#Par .- or -. or -- or .. no permitidos
    
if ( preg_match('/.\.\-.|.\-\..|.\.\..|.\-\-./',$email) )
        return 
False;

    
#Par ._ or -_ or _. or _- or __ no permitidos
    
if ( preg_match('/.\.\_.|.\-\_.|.\_\..|.\_\-.|.\_\_./',$email) )
        return 
False;

    
#Host debe terminar con '.' más 2-5 alfa para TopLevelDomain
    
if (!preg_match('/\.([a-zA-Z]{2,5})$/',$email) )
        return 
False;

    return 
True;
}
/*Si se le dio al boton submit*/
if (isset($_POST['submit'])) {
//revisa si no estan vacios los campos
  
if (!empty($_POST['para']) && !empty($_POST['de']) &&   !empty($_POST['asunto']) && !empty($_POST['mensaje'])) {
//revisa si el e-mail es valido
    
if (check_email($_POST['para']) && check_email($_POST['de'])) {
//asigno variables para el envio      
$para $_POST['para']
$de $_POST['de'];
$asunto $_POST['asunto'];
$mensaje "$de ($_SERVER['REMOTE_ADDR']) envia el siguiente mensaje \n $_POST['mensaje']";
$headers "From: $de \r\n";
$headers. = "To: $para \r\n";
//envio el mail
      
if (mail($para,$asunto,$mensaje,$headers)) {
//si se pudo enviar
      
echo '<script language="javascript" type="text/javascript">alert ('Gracias por tus comentarios')</script>';
      }else{
//si no se pudo enviar
      
echo '<script language="javascript" type="text/javascript">alert('ErrorEl e-mail no pudo ser enviado')</script>';
      }
    }else{
//si el e-mail no es valido
    
echo '<script language="javascript" type="text/javascript">alert('El e-mail debe se valido')</script>';
    }
  }else{
//si algun campo quedo vacio
  
echo '<script language="javascript" type="text/javascript">Alert('Te falto algo')</script>';
  }
}else{
?>
Aqui va el form con el atributo name correspondiente en cada campo
<?
}?>
__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.