Foros del Web » Programando para Internet » PHP »

formulario php - correo html

Estas en el tema de formulario php - correo html en el foro de PHP en Foros del Web. Bueno, luego de buscar algún caso similar al mío y no dar con él, me presento en este foro lanzando un problema para alguien que ...
  #1 (permalink)  
Antiguo 08/10/2007, 10:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 13
Antigüedad: 16 años, 6 meses
Puntos: 0
formulario php - correo html

Bueno, luego de buscar algún caso similar al mío y no dar con él, me presento en este foro lanzando un problema para alguien que se apiade de este pobre novato.
Resulta que encontré un script de php para enviar un correo desde un formulario y el problema es que cuando lo abro en outlook me aparece como texto plano (el código html) y en yahoo me aparece bien como html, aquí dejo el script de php para que lo revisen a ver si alguien puede decirme qué está mal...

gracias!

<?
/* ------------------------------------------------------
Formular-Gateway-Script für mail to date / web to date
(C) 2002 MultiMüller GmbH www.multimueller.de
Agregados, mejoras y correcciones hechos por Pablo Lecce
www.rhosting.com.ar
Script para el filtrado contra ataques usando formularios
tomado del sitio http://php-hispano.net/foros/PHP/15101
------------------------------------------------------
*/
// Funcion para prevenir el spam filtrando las cabeceras
function ValidarDatos($campo){
//Array con las posibles cabeceras a utilizar por un spammer
$badHeads = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:");
//Comprobamos que entre los datos no se encuentre alguna de
//las cadenas del array. Si se encuentra alguna cadena se
//dirige a una página de Forbidden
foreach($badHeads as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
header("HTTP/1.0 403 Forbidden");
exit;
}
}
}
// Declaro como falsa la variable de plantillas para dejar que el programa la evalue
$hayplantilla=false;
$haygracias=false;
// Declaro las variables de acumulacion de variables
$reemplazar.="";
$cadenanueva.="";
$reemplazarencadena=array();
$cadenanuevaencadena=array();
// Evalua si se pasaron variables. Si es asi separa variables especificas y compila las otras.
if (count(stripslashes($_POST))!=0){
$cuerpodelmensaje="";
while (list($key, $val) = each ($_POST)){
switch ($key){
case "recipient":
$enviaraemail=$val;
break;
case "email":
$emaildelqueenvia=$val;
break;
case "subject":
$asunto=$val;
break;
case "redirect":
$fgwreturnurl=$val;
if($fgwreturnurl!=""){$haygracias=true;}
break;
case "plantilla":
$plantilla=$val;
if($plantilla!=""){$hayplantilla=true;}
break;

default:
$keysinguionesbajos=ereg_replace("_"," ",$key);
if($hayplantilla==true){
$reemplazar.=",{{".$key."}}";
$cadenanueva.=",".$val;
} else {
$cuerpodelmensajefinal.=$keysinguionesbajos.": ".$val."<br>";
}
}
}


if($hayplantilla==true){
$reemplazados=explode(",",$reemplazar);
$cadenanuevaencadena=explode(",",$cadenanueva);
$archivo = file($plantilla);
$lineasdecadena = count($cadenanuevaencadena);
$lineas = count($archivo);
for($i=0; $i < $lineas; $i++){
$Cadena=$archivo[$i];
for( $j = 0; $j <= $lineasdecadena; $j++ ){
if(($reemplazados[$j]!="")&&($cadenanuevaencadena[$j]!="")){$Cadena=ereg_replace($reemplazados[$j],$cadenanuevaencadena[$j],$Cadena); }
}
$cuerpodelmensajefinal.=$Cadena;
}
}

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-Type:text/html; charset=iso-8859-1\r\n";
$headers .= 'To: '.$enviaraemail.'' . "\r\n";
$headers .= 'From: '.$emaildelqueenvia.' <'.$emaildelqueenvia.'>' . "\r\n";
if(@mail ($enviaraemail, $asunto, $cuerpodelmensajefinal, $headers)){if($haygracias==true){header("Location: ".$fgwreturnurl);} else { echo "Muchas gracias por ponerte en contacto con nosotros! Tu mensaje fue enviado. Una persona de nuestra empresa se pondrá en contacto contigo a la brevedad.<p>&nbsp;</p>Continuá disfrutando nuestro sitio!";}} else { echo "No se ha podido enviar tu email. Por favor vuelve atras e intentalo nuevamente.";}}else{echo "Error: no se ha transferido ningún dato";die;
}
?>
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 18:49.