Hola de nuevo:
Estuve revisando el código de tu sitio y te puedo ayudar pasándote un formulario que ya esta listo.
Primero que nada, cambia lo siguiente en el form dentro de tu página de contacto:
Original: <form method="post" comentario"=""[correo eliminado]"?subject="Cualquier" action="mailto:" enctype="text/plain" name="Enviar">
Modificado: <form method="post" action="enviar.php">. Eso es todo, el resto está bien.
Para que funcione el formulario, solo hace falta que copies (y modifiques un par de cosas) y pegues lo siguiente en un archivo llamado enviar.php dentro de la misma carpeta donde está el formulario de contacto:
<?php
$nombre = $_POST['Nombre'];
$phone = $_POST['tlf'];
$mail = $_POST['Correo'];
$msg_body = $_POST['mensaje'];
$output = '';
if(!isset($nombre) && !isset($phone) && !isset($mail) && !isset($msg_body)) {
$output .= '<p class="error">Todos los campos son obligatorios</p><br />';
}
else {
if( !val_name( $nombre ) )
$output .= '<p class="error">El nombre debe tener 3 caracteres de largo como mínimo y contener sólo letras.</p>';
if( !val_phone( $phone ) )
$output .= '<p class="error">El teléfono no es válido.</p>';
if( !val_mail( $mail ) )
$output .= '<p class="error">El e-mail no es válido.</p>';
if( strlen( $msg_body ) < 20 )
$output .= '<p class="error">El mensaje debe contener un mínimo de 20 caracteres.</p>';
if( strlen( $msg_body ) > 1000 )
$output .= '<p class="error">El mensaje no puede contener más de 1000 caracteres. Usted tiene ' . ( 1000 - strlen( $msg_body ) ) . ' caracteres demás.</p>';
}
if( !empty( $ouput ) )
echo $output;
else {
clear_str( $nombre );
clear_str( $phone );
clear_str( $mail );
clear_str( $msg_body );
$msg_body .= '<br /><br /><p>Enviado por: ' . $nombre . '</p>';
$msg_body .= '<p>Teléfono: ' . $phone . '</p>';
$msg_body .= '<p>Mail: ' . $mail . '</p>';
if( sendit( $nombre . '<' . $mail . '>', '[correo eliminado]', 'Contacto Sangin', $msg_body, strip_tags($msg_body), '', '' ) )
echo 'enviado';
else
echo 'error';
}
// Reemplaza lo que esta dentro de las comillas simples en $to para usar otro correo de destino.
function sendit($from = '', $to = '', $subject = 'Sin asunto', $contenido_html = '', $contenido_plano = '', $CC = '', $BCC = '', $sIP = '') {
$eol = PHP_EOL;
if($sIP == '')
$sIP = md5($subject.date('dmY'));
if($from == '')
$from = '<noreply@' .$_SERVER['SERVER_NAME']. '>'.$eol;
$header = 'From: ' .$from.$eol;
// Responder a:
$header .= 'Reply-To: ' .$from.$eol;
// Responder acuse de recibo a:
$header .= 'Return-Receipt-To: ' .$from.$eol;
// Responder:
$header .= 'Return-Path: ' .$from.$eol;
// Con copia:
if($CC != '')
$header .= 'CC: ' .$CC.$eol;
// Con copia ciega (Blind Carbon Copy, conceal ):
if($BCC != '')
$header .= 'BCC: ' .$BCC.$eol;
$header .= 'Message-ID: <' .time(). ' no-reply@' .$_SERVER['SERVER_NAME']. '>' .$eol;
$header .= 'Content-Type: multipart/alternative; boundary="' .$sIP. '"' .$eol.$eol;
$header .= 'MIME-Version: 1.0' .$eol;
// PLAIN TEXT
$msg = "Content-Type: multipart/alternative".$eol;
$msg .= '--' .$sIP.$eol;
$msg .= 'Content-Type: text/plain; charset=utf-8' .$eol;
$msg .= 'Content-Transfer-Encoding: 7bit' .$eol.$eol;
$msg .= $contenido_plano . $eol . $eol;
$msg .= 'Para ver correctamente este mensaje, usted necesita activar el contenido HTML.'.$eol;
$msg .= 'Si usted está leyendo esto, por favor actualice su cliente de correo electrónico o active el contenido HTML.'.$eol;
// HTML MESSAGE
$msg .= '--'.$sIP.$eol;
$msg .= 'Content-Type: text/html; charset=utf-8'.$eol;
$msg .= 'Content-Transfer-Encoding: 7bit'.$eol.$eol;
$msg .= $contenido_html . $eol . $eol;
$msg .= '--' .$sIP.$eol;
ini_set('sendmail_from', $from);
if (mail($to, $subject, wordwrap($msg, 70, $eol), $header)) {
@ini_restore('sendmail_from');
return true;
}
else {
@ini_restore('sendmail_from');
return false;
}
return false;
}
function clear_str(&$str) {
$str = htmlspecialchars($str, ENT_QUOTES);
$str = stripslashes($str);
$str = strip_tags($str);
}
function val_name( $name ) {
if( preg_match( '/^[A-Za-záéíóúÁÉÍÓÚüÜäëïöÄËÏÖ][A-Za-záéíóúÁÉÍÓÚüÜäëïöÄËÏÖ\s]{3,50}$/', $name ) )
return true;
print preg_last_error();
return false;
}
function val_phone( $phone ) {
if( preg_match( '/^(\d){7,12}$/', $phone ) )
return true;
print preg_last_error();
return false;
}
function val_mail( $mail ) {
if( preg_match( '/^([A-Za-z0-9_])([a-zA-Z0-9\._])+@([a-z|A-Z|0-9])+\.([a-zA-Z]){2,3}$/', $mail ) )
return true;
print preg_last_error();
return false;
}
?>
Ahora, debo aclarar un par de cosas. Todos los campos son validados de cierta manera. Por ejemplo, el nombre debe contener al menos 3 letras (sin números) desde la A-Z (mayúsculas o minúsculas) junto con los siguientes caracteres: á, é, í, ó, ú, Á, É, Í, Ó, Ú, ü, Ü, ä, ë, ï, ö, Ä, Ë, Ï, Ö. El número telefónico también está restringido, pues debe contener sólo números y debe tener un mínimo de 7 cifras y un máximo de 12.El e-mail también tiene una restricción: debe ser un e-mail válido. Por ejemplo: [correo eliminado] es un email válido; en cambio [correo eliminado] no lo es. Por último, el cuerpo del mensaje debe tener al menos 20 caracteres y un máximo de 1000.
Si alguna de las condiciones anteriores no se cumple el e-mail no será enviado. El formulario de contacto original es
este (programado por mí, diseñado por una diseñadora gráfica).
Eso es todo. Ahora debería funcionar, de lo contrario, asegúrate que tu servidor soporte PHP y la función mail del mismo.