Foros del Web » Programando para Internet » PHP »

Envio de archivos adjuntos a Mail personal

Estas en el tema de Envio de archivos adjuntos a Mail personal en el foro de PHP en Foros del Web. Hola a todos. Tengo un formulario en PHP que funciona correctamente bien vaya recoge todo los datos y se envia a un mail predeterminado, el ...
  #1 (permalink)  
Antiguo 26/05/2010, 17:42
Avatar de zero22  
Fecha de Ingreso: enero-2002
Ubicación: veracruz
Mensajes: 69
Antigüedad: 22 años, 3 meses
Puntos: 0
Busqueda Envio de archivos adjuntos a Mail personal

Hola a todos.


Tengo un formulario en PHP que funciona correctamente bien vaya recoge todo los datos y se envia a un mail predeterminado, el asunto es que en ese formulario le incorpore un boton de examinar, la cual permite seleccionar un archivo desde mi pc y anexarlo junto con los demas datos y que se envie igualmente ¡pero no llega el archivo adjunto! como puedo arreglar ese detalle?

FORM

<form action="enviarcorreo.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="540" border="0" align="center">
<tr>
<td><blockquote>
<div align="center">
<p align="justify" class="Estilo4">&nbsp;</p>
<p align="justify" class="Estilo4"><span class="Estilo5"><span class="Estilo6">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Escriba en este apartado sus comentarios, sugerencias, solicitud de alg&uacute;n documento o pedir informaci&oacute;n para ingresar a la R:.L:.S:. IRIS 42</p>
</div>
</blockquote></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><table width="302" border="0" align="center">
<tr>
<td width="110" align="right" valign="middle">Nombre</td>
<td colspan="2"><label>
<input name="nombre" type="text" id="nombre" size="25">
</label></td>
</tr>
<tr>
<td>Direcci&oacute;n:</td>
<td colspan="2"><label>
<input name="direccion" type="text" id="direccion" size="25">
</label></td>
</tr>
<tr>
<td>Correo Electr&oacute;nico:</td>
<td colspan="2"><label>
<input name="correo" type="text" id="correo" size="25">
</label></td>
</tr>
<tr>
<td>Telefono:</td>
<td colspan="2"><label>
<input name="telefonos" type="text" id="telefonos" size="25">
</label></td>
</tr>
<tr>
<td>Asunto:</td>
<td colspan="2"><label>
<input name="asunto" type="text" id="asunto" size="25">
<br>
</label></td>
</tr>
<tr>
<td>:</td>
<td colspan="2"><label>
<input type="file" name="fileField" id="fileField">
</label></td>
</tr>
<tr>
<td>Comentarios</td>
<td colspan="2"><label></label> <label>
<textarea name="comentarios" cols="30" rows="5" id="comentarios"></textarea>
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="51"><input type="submit" name="enviar" id="enviar" value="Enviar"></td>
<td width="275"><input type="reset" name="borrar" id="borrar" value="Restablecer"></td>
</tr>
</table></td>
</tr>
</table>
</form>
  #2 (permalink)  
Antiguo 26/05/2010, 17:44
Avatar de zero22  
Fecha de Ingreso: enero-2002
Ubicación: veracruz
Mensajes: 69
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Envio de archivos adjuntos a Mail personal

aqui esta el PHP


<?
// Recepcion de datos
$nombre=$_POST['nombre'];
$direccion=$_POST['direccion'];
$correo=$_POST['correo'];
$telefonos=$_POST['telefonos'];
$asunto=$_POST['asunto'];
$subir=$_POST['subir'];
$comentarios=$_POST['comentarios'];
//Fin de recepcion de datos


//segunda forma de comprobacion//
if($nombre == "") header("location: nombre.php");
elseif ($direccion == "") header ("location:direccion.php");
elseif ($correo == "") header ("location:correo.php");
elseif ($telefonos == "") header ("location:telefono.php");
elseif ($asunto == "") header ("location:asunto.php");
elseif ($comentarios == "") header ("location:comentarios.php");
//fin de la comprobacion


else {

//Lo que quieras hacer si todo esta bien.

//Accion de envios
//-----------------//

$para='[email protected]';
$mensaje='
Este es mi mensaje y los datos de la persona son:

Nombre: '.$nombre.'
Direccion: '.$direccion.'
Correo Electronico: '.$correo.'
Telefonos: '.$telefonos.'
Asunto: '.$asunto.'
Subir: '.$subir.'
Comentarios: '.$comentarios.'
';
$desde='From: Desde XXX <[email protected]>';
mail($para,$asunto,$mensaje,$desde);
{
echo "Mensaje enviado correctamente";
}

}

?>
  #3 (permalink)  
Antiguo 26/05/2010, 18:30
Avatar de zero22  
Fecha de Ingreso: enero-2002
Ubicación: veracruz
Mensajes: 69
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Envio de archivos adjuntos a Mail personal

Ok he dado con este codigo PHP que funciona muy bien el unico detalle es que en el formulario al darle enviar aunque esten los campos vacios se manda al correo especificado.

-ahora como puedo limitar el tamaño para el envio de archivos quiero un maximo de 10 megas.
- en cuanto a formatos solo quiero que sea pdf, doc, docx, ppt o pptx, zip y rar, soy honesto no se nada de programacion con respecto a este lenguaje solo se lo basico, por eso pido su ayuda espero puedan ayudarme.
  #4 (permalink)  
Antiguo 26/05/2010, 18:30
Avatar de zero22  
Fecha de Ingreso: enero-2002
Ubicación: veracruz
Mensajes: 69
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: Envio de archivos adjuntos a Mail personal

se me olvidaba el codigo:


<?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("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
?>

Etiquetas: adjuntos, envio, mail, personal
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 17:17.