Hola a tod@s,
tengo un problema que me lleva un par de días de cabeza, el tema es el siguiente:
Tengo un formulario que envía dos campos y un archivo adjunto, hasta hay todo va bien, y lo envia correctamente, pero antes de recibir el email correcto recibo uno en blanco, e inmediatamente después el correcto con el adjunto.
Llevo un par de días dandole vueltas e investigando por ahi pero no doi con la solución para evitar que me envia el email en blanco, gracias de amntemano.
Código:
$emailDestination = "[email protected]";
$emailOrigin="[email protected]";
$nameEmailOrigin = "Mi empresa";
$subject=$_POST[titulo];
$message=$_POST[cuerpo];
$docList = 'image/gif,image/jpeg,image/jpg,image/pjpeg,image/x-png,application/msword,application/rtf,text/plain,application/octet-stream,application/pdf';
if (is_uploaded_file($_FILES['adjunto']['tmp_name']) && eregi($_FILES['adjunto']['type'],$docList)){
$nameFile = $_FILES['adjunto']['tmp_name'];
$file = fopen($nameFile, "r");
$contenido = fread($file, filesize($nameFile));
$encoded_attach = chunk_split(base64_encode($contenido));
fclose($file);
}
$headers = "From: ". $nameEmailOrigin . " <". $emailOrigin .">\n";
$headers .= "Reply-To: $emailDestination\n";
$headers .= "MIME-version: 1.0\n";
$headers .= "Content-type: multipart/mixed; ";
$headers .= "boundary=\"Message-Boundary\"\n";
$headers .= "Content-transfer-encoding: 7BIT\n";
$headers .= "X-attachments: ". $_FILES['adjunto']['name'];
$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/html; charset=UTF-8\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";
$body = $body_top;
if (is_uploaded_file($_FILES['adjunto']['tmp_name']) && eregi($_FILES['adjunto']['type'],$docList)){
$body .= $message;
$body .= "\n\n--Message-Boundary\n";
$body .= "Content-type: Binary; name=\"". $_FILES['adjunto']['name'] ."\"\n";
$body .= "Content-Transfer-Encoding: BASE64\n";
$body .= "Content-disposition: attachment; filename=\"". $_FILES['adjunto']['name'] ."\"\n\n";
$body .= "$encoded_attach\n";
$body .= "--Message-Boundary--\n";
}
//comprobamos que el email se envia correctamente
if(mail($emailDestination,$subject,$body,$headers)){
$resultado="Tu boletín ha sido enviado correctamente.<br/><br/>";
if(!eregi($_FILES['adjunto']['type'],$docList)){
$resultado .="<br/><br/>El tipo de archivo que deseas enviar no esta permitido.<br/><br/>";
echo("<hr><br/><br/>");
}
}else{
$resultado .= "Si tienes problemas al enviar el contacta con el administrador.<br/><br/>";
}