Foros del Web » Programando para Internet » PHP »

Error 500 al enviar email

Estas en el tema de Error 500 al enviar email en el foro de PHP en Foros del Web. Hola os cuento mi problema haber si me podéis hechar un cable, tengo un formulario con adjuntos y su archivo php correspondiente, pero al mandar ...
  #1 (permalink)  
Antiguo 06/11/2014, 02:35
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Error 500 al enviar email

Hola os cuento mi problema haber si me podéis hechar un cable, tengo un formulario con adjuntos y su archivo php correspondiente, pero al mandar el email siempre me devuelve un error 500. Probandolo en local funciona perfectamente, será tema del email al que quiero que me lleguen los datos del formulario? ¿Hay que usar algún servidor en concreto?
este es el formulario:

<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>E-mail
<input type='text' name='email' id='email'>
</p>
<p>Asunto
<input type='text' name='asunto' id='asunto' />
</p>
<p>Mensaje
<textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
</p>
<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar'>
</p>
</form>

Y el php es este:

<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
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=iso-8859-1\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));
}

//cambiar aqui el email
if (form_mail("info@@acaLeon.es", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
?>

Gracias de antemano. Si me ayudan me solucionarían un gran problema.
Gracias.
  #2 (permalink)  
Antiguo 06/11/2014, 04:07
Avatar de javier6_almansa  
Fecha de Ingreso: mayo-2014
Mensajes: 34
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Error 500 al enviar email

Utiliza la librería PHPMailer, es mucho mejor, y seguro que no te dará fallos.
https://github.com/PHPMailer/PHPMailer
  #3 (permalink)  
Antiguo 06/11/2014, 05:14
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Error 500 al enviar email

Vale gracias, lo intentaré¡

Etiquetas: 500, email, formulario
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 11:46.