Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/09/2008, 14:37
vissiontotal
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Sonrisa Funcion MAIL () funciona bien pero manda a Spam

Bien amigos creo que esta claro mi problema tengo un formulario que funciona perfectamente bien con la funcion mail hace validaciones y checa que no se utilice para enviar Spam....... pero cuando se envia el mensaje en el hotmail aparece como SPAM...

Esto es lo que aparece en el Hotmail.........

Este mensaje se ha marcado como correo no deseado y se eliminará dentro de diez días.
Este mensaje se ha bloqueado para tu seguridad. Abrir mensaje




Este es el código en php
<?php if (array_key_exists('enviar',$_POST)) {

$para = '[email protected]';
$asunto = 'contacto de visitante';

// eliminar caracteres escape de array POST
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value) {
$value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
}

//Lista de archivos que se esperan
$esperado = array('nombre', 'ciudad', 'correo', 'tipo_contacto', 'texto');
//Configurar archivos obligatorios
$obligatorio = array('nombre', 'ciudad', 'correo', 'tipo_contacto', 'texto');
//Crear un array vacÃ*o para cualquier archivo perdido
$perdido = array();

//asume que no hay nada sospechoso
$sospechoso = false;
//crear un patrón para localizar frases sospechosas
$patron = '/Content-Type:|BCC:|CC:/i';

// function para comprobar frases sospechosas
function esSospechoso($val, $patron, &$sospechoso) {
// si la variable es un array, loop a través de cada elemento
// y pasarlo recursivamente de vuelta a la misma función
if (is_array($val)) {
foreach ($val as $item) {
esSospechoso($item, $patron, $sospechoso);
}
}
else {
// si es encontrada una de las frases sospechosas, configurar Boolean a true
if (preg_match($patron, $val)) {
$sospechoso = true;
}
}
}

//validar la dirección email
if (!empty($email)) {
// expresión regular para identificar caracteres ilegales en dirección email
$checkEmail = '/^[^@]+@[^\s\r\n\'";,@%]+$/';
//rechazar la dirección email si no cumple la expresión regular
if (!preg_match($checkEmail, $email)) {
$sospechoso = true;
$enviarMail = false;
unset($perdido);
}
}


//comprobar el array $_POST y todos los subarrays buscando contenido sospechoso
esSospechoso($_POST, $patron, $sospechoso);

if ($sospechoso) {
$enviarMail = false;
unset($perdido);
}
else {
//Procesar las variables $_POST
foreach ($_POST as $key => $value) {
//asignar a variable temporalmente y vacÃ*a espacio blanco si no un array
$temp = is_array($value) ? $value : trim($value);
//si vacÃ*o y obligatorio, añadir a array $perdido
if (empty($temp) && in_array($key, $obligatorio)) {
array_push($perdido, $key);
}
//En otro caso, asignar a una variable del mismo nombre que $key
elseif (in_array($key, $esperado)) {
${$key} = $temp;
}
}
}

//Seguir sólo si todos los campos requeridos están OK
if (!$sospechoso && empty($perdido)) {



// procesar las variales $_POST
$nombre = $_POST['nombre'];
$ciudad = $_POST['ciudad'];
$correo = $_POST['correo'];
$tipo_contacto = $_POST['tipo_contacto'];
$texto = $_POST['texto'];

// crear mensaje
$mensaje = "Nombre: $nombre\n\n";
$mensaje .= "Ciudad: $ciudad\n\n";
$mensaje .= "Correo: $correo\n\n";
$mensaje .= "Tipo de contacto: $tipo_contacto\n\n";
$mensaje .= "Texto: $texto\n\n";

// limitar tamaño de linea a 70 caracteres
$mensaje = wordwrap($mensaje, 70);

//crear cabeceras adicionales
$cabeceras ='From: Vissiontotal<[email protected]>';
if (!empty($correo)) {
$cabeceras .= "\r\nReply-To: $correo";
}

// enviarlo
$enviarMail = mail ($para, $asunto, $mensaje, $cabeceras);
if ($enviarMail) {
//$perdido deja de ser necesario si el email es enviado, asÃ* que lo destruimos con unset
unset($perdido);
}
}
}
?>

AQUI ESTA EL FORMULARIO
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
<link href="file:///C|/AppServ/www/vissiontotal/spi/css/general.css" rel="stylesheet" type="text/css" />
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<p align="center" class="textos_cabecitas">SISTEMA DE CONTACTO</p>
<p align="center" class="textos_cabecitas">
<?php if ($_POST && isset($perdido) && !empty($perdido)) {
?>
</p>
<p class="textos_contacto_fallo"> Por favor, completa los campos que se indican. </p>
<?php
}
elseif ($_POST && !$enviarMail) {
?>
<p class="textos_contacto_fallo">Lo siento, ha habido un problema enviando tu mensaje.</p>
<?php
}
elseif ($_POST && $enviarMail) {
?>
<p class="textos_contacto_ok">Su mensaje ha sido enviado. Gracias por sus comentarios.</p>
<?php }?>
</p>
<table width="395" border="0" align="center">
<tr bgcolor="#990000" class="textos_standar_blanco">
<td colspan="2">Por favor deja tus datos personales</td>
</tr>
<tr class="textos_standar_negro">
<td width="179">Nombre y apellido</td>
<td width="206"><label>
<?php if (isset($perdido) && in_array('nombre', $perdido)) { ?>
<span class="textos_contacto_obligatorio">Por favor, escriba su Nombre</span>
<?php } ?>
<input type="text" name="nombre" id="nombre"
<?php if (isset($perdido)) {
echo 'value=" '.htmlentities($_POST['nombre']).' " ';
}
?>
/>
</label></td>
</tr>
<tr class="textos_standar_negro">
<td>Ciudad</td>
<td><label>
<?php if (isset($perdido) && in_array('ciudad', $perdido)) { ?>
<span class="textos_contacto_obligatorio">Por favor, escriba su ciudad</span>
<?php } ?>
<input type="text" name="ciudad" id="ciudad"
<?php if (isset($perdido)) {
echo 'value=" '.htmlentities($_POST['ciudad']).' " ';
}
?>

/>
</label></td>
</tr>
<tr class="textos_standar_negro">
<td>Correo electr&oacute;nico</td>
<td><label>
<?php if (isset($perdido) && in_array('correo', $perdido)) { ?>
<span class="textos_contacto_obligatorio">Por favor, escriba su Correo</span>
<?php } ?>
<input type="text" name="correo" id="correo"
<?php if (isset($perdido)) {
echo 'value=" '.htmlentities($_POST['nombre']).' " ';
}
?>

/>
</label></td>
</tr>
<tr class="textos_standar_negro">
<td>Tipo de contacto</td>
<td><label>
<?php if (isset($perdido) && in_array('tipo_contacto', $perdido)) { ?>
<span class="textos_contacto_obligatorio">Por favor, seleccione una opcion</span>
<?php } ?>
<select name="tipo_contacto" id="tipo_contacto">
<option>Queja</option>
<option>Felicitaci&oacute;n</option>
<option>Observacion</option>
<option>Sugerencia</option>
<option>Cr&iacute;tica</option>
<option>Falla de p&aacute;gina</option>
</select>
</label></td>
</tr>
<tr>
<td colspan="2">&nbsp;</td>
</tr>
<tr bgcolor="#990000" class="textos_standar_blanco">
<td colspan="2">Sobre qu&eacute; deseas mandarnos tu correo
<label></label></td>
</tr>
<tr>
<td colspan="2"><label>
<?php if (isset($perdido) && in_array('texto', $perdido)) { ?>
<span class="textos_contacto_obligatorio">Por favor, escriba su mensaje</span>
<?php } ?>
<textarea name="texto" id="texto" cols="45" rows="5"><?php if (isset($perdido)) {
echo htmlentities($_POST['texto']);
}?>
</textarea>
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="enviar" id="enviar" value="Enviar" />
</label></td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>
</body>
</html>