Tengo este código en los 4 formularios de mi página Web, tengo alojamiento en Hostalia.com y desde hace unas semanas no me funcionan ni me llegan los formularios, desde Hostalia me dicen que tengo que meter unos códigos que me envían en los 4 formularios para que me funcionen bien......
Este es el código que tengo en los 4 formularios:
<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";
if ($sDe)$sCabeceras = "From:Dinamic Group";
else $sCabeceras = "";
$sCabeceras .= "";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;
foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=UTF-8\n\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
$oFichero = fopen($vAdjunto["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}
if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}
header('Refresh: 2; url=../index.php');
//cambiar aqui el email
if (form_mail("[email protected]", "Formulario de Contacto",
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "<span style='text-align:center'>Estamos actualizando formularios, contactenos por E-mail o Telefono, disculpen las molestias.</span>";
?>
Este es el código de Hostalia que tengo que meter en los 4 formularios que tengo que tienen el código de arriba.
Código de Hostalia:
Estimado cliente.
Le facilitamos un formulario con un funcionamiento correcto para su plataforma.
error_reporting( E_ALL & ~( E_NOTICE | E_STRICT | E_DEPRECATED ) ); //Aquí se genera un control de errores "NO BORRAR NI SUSTITUIR"
require_once "Mail.php"; //Aquí se llama a la función mail "NO BORRAR NI SUSTITUIR"
$to = '[email protected]'; //Aquí definimos quien recibirá el formulario
$from = '[email protected]'; //Aquí definimos que cuenta mandará el correo, generalmente perteneciente al mismo dominio
$host = 'smtp.ejemplo.com'; //Aquí definimos cual es el servidor de correo saliente desde el que se enviaran los correos
$username = '[email protected]'; //Aqui se define el usuario de la cuenta de correo
$password = '123456Aa'; //Aquí se define la contraseña de la cuenta de correo que enviará el mensaje
$subject = 'Prueba formulario php'; //Aquí se define el asunto del correo
$body = 'Esto es una prueba para ver si funciona'; //Aquí se define el cuerpo de correo
//A partir de aquí empleamos la función mail para enviar el formulario
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
//Una vez aquí habremos enviado el mensaje mediante el formulario
//El siguiente codigo muestra en pantalla un mensaje indicando que el mensaje ha sido enviado y a que cuenta ES OPCIONAL desde Acens lo incluimos para verificar que el formulario de prueba esta funcionando
if (PEAR::isError($mail)) {
echo("
" . $mail->getMessage() . "
");
} else {
echo "Mensaje enviado desde POA a ". $to ;
}
?>
Espero que me puedan ayudar y decirme como meter los códigos de Hostalia.
Gracias y un saludo.