Foros del Web » Programando para Internet » PHP »

Envio de mail incorrectos, envia doble y uno en blanco

Estas en el tema de Envio de mail incorrectos, envia doble y uno en blanco en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/06/2011, 09:19
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 1
Envio de mail incorrectos, envia doble y uno en blanco

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/>";
}
  #2 (permalink)  
Antiguo 06/06/2011, 10:06
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: Envio de mail incorrectos, envia doble y uno en blanco

ese es el unico código de tu pág ??? pq a lo mejor es que lo tienes dentro de un ciclo, o que refrescas la pagina del formulario, y lo vuelve a enviar ..
  #3 (permalink)  
Antiguo 06/06/2011, 10:08
 
Fecha de Ingreso: mayo-2010
Mensajes: 5
Antigüedad: 13 años, 11 meses
Puntos: 1
Hay va el codigo completo

<?
include ("biblioteca.php");

$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/>";
}

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


<style type="text/css">
<!--
body {
background-image: url();
background-color: #eee;
}
.Estilo5 {
font-size: 12px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.Estilo6 {
font-size: 16px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
-->
</style>
<title>Fotolocales.com - Envio de solicitud de informaci&oacute;n</title></head>

<body>
<table border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td width="303" bgcolor="#FFFFFF"><img src="../img/logo.jpg" width="537" height="128"></td>
</tr>
<tr>
<td height="148" bgcolor="#FFFFFF"><p class="Estilo6">RESULTADO DEL ENVIO DEL BOLETÍN
</p>
<p class="Estilo5"><br>
<strong>El resultado del envio del formulario es :</strong></p>
<p class="Estilo5"><? echo $resultado; ?></p>
<p class="Estilo6">&nbsp;</p></td>
</tr>
<tr>
<td bgcolor="#FFFFFF" class="Estilo5"><div align="center"><a href="#" onClick="javascript:window.close();"><img src="img/icono_borrar.jpg" width="16" height="16" border="0" align="absmiddle"> CERRAR ESTA VENTANA</a></div></td>
</tr>
</table>
</body>
</html>

Etiquetas: blanco, correo, doble, email, envio, mail, vacio, adjuntos
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 05:05.