Foros del Web » Programando para Internet » PHP »

enviar correo electrónico con archivo adjunto

Estas en el tema de enviar correo electrónico con archivo adjunto en el foro de PHP en Foros del Web. Buenos días: necesito crear un formulario en el cual además de enviar datos también pueda adjuntar un archivo, sea jpg, gif, png, etc. para tal ...
  #1 (permalink)  
Antiguo 16/12/2010, 09:56
 
Fecha de Ingreso: mayo-2004
Mensajes: 130
Antigüedad: 19 años, 11 meses
Puntos: 0
enviar correo electrónico con archivo adjunto

Buenos días: necesito crear un formulario en el cual además de enviar datos también pueda adjuntar un archivo, sea jpg, gif, png, etc. para tal efecto tengo un código en un archivo php para el formulario y otro para el archivo php para que haga el envío, pero me muestra como error que falta el archivo, es decir, no lo encuentra al archivo, les agradeceré mucho revisen los códigos y corrijan el error y puedan ayudarme a resolver el tema. Muchas gracias.

codigo del archivo donde está el fomulario:

<form id="form1" name="form1" method="post" action="cotizacion_pull_envio.php">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><div align="center"><span class="txt"align="center"><strong>:: COTIZACIONES ::</strong></span>
</div>
<div align="center">
<table width="95%" height="111" border="0" cellpadding="1" cellspacing="1">
<tbody>
<tr>
<td width="35%" height="10" class="txt" align="left">Empresa*</td>
<td width="65%"><label>
<input name="empresa" type="text" id="empresa" size="30" />
</label> </td>
</tr>
<tr>
<td width="35%" height="10" class="txt"align="left">RUC*</td>
<td width="65%"><input name="ruc" type="text" id="ruc" size="30" /></td>
</tr>
<tr>
<td height="10" class="txt"align="left">Direccion* </td>
<td><input name="direccion" type="text" id="direccion" size="30" /> </td>
</tr>
<tr>
<td height="10" class="txt"align="left">Contacto* </td>
<td><input name="contacto" type="text" id="contacto" size="30" /> </td>
</tr>
<tr>
<td height="10" class="txt"align="left">Teléfono* </td>
<td><input name="telefono" type="text" id="telefono" size="30" /> </td>
</tr>
<tr>
<td height="10" class="txt"align="left">E-mail* </td>
<td><input name="email" type="text" id="email" size="30" /> </td>
</tr>
<tr>
<td height="4"align="left" class="txt">Descripción</td>
<td><textarea name="descripcion" cols="30" rows="5" id="descripcion"></textarea> </td>
</tr>
<tr>
<td height="5"align="left" class="txt">Adjuntar archivo<br />(Opcional)</td>
<td><input type="file" name="archivo1" id="archivo1" /></td>
</tr>
<tr>
<td height="10" ><div align="left" class="msnRojo">*campos obligatorios </div></td>
<td><div align="left">
<input name="Submit" type="submit" class="btnbusca" onclick="MM_validateForm('nombre','','R','apellido s','','R','empresa','','R','rubro','','R','pais',' ','R','cargo','','R','mail','','RisEmail');return document.MM_returnValue;" value="Enviar" />
<input type="reset" name="Submit2" value="Limpiar" />
</div></td>
</tr>
</tbody>
</table>
</div></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr class="linkPrincipal">
<td><div align="center"></div></td>
</tr>
</tbody>
</table>
</form>




codigo del archivo donde está la codificación de envío:

<? function ValidarDatos($campo){
//Array con las posibles cabeceras a utilizar por un spammer
$badHeads = array("Content-Type:",
"MIME-Version:",
"Content-Transfer-Encoding:",
"Return-path:",
"Subject:",
"From:",
"Envelope-to:",
"To:",
"bcc:",
"cc:");

//Comprobamos que entre los datos no se encuentre alguna de
//las cadenas del array. Si se encuentra alguna cadena se
//dirige a una p&aacute;gina de Forbidden
foreach($badHeads as $valor){
if(strpos(strtolower($campo), strtolower($valor)) !== false){
header("HTTP/1.0 403 Forbidden");
exit;
}
}
}

//Ejemplo de llamadas a la funcion

ValidarDatos($HTTP_POST_VARS['empresa']);
$empresa = $_POST['empresa'];
ValidarDatos($HTTP_POST_VARS['ruc']);
$ruc = $_POST['ruc'];

ValidarDatos($HTTP_POST_VARS['direcccion']);
$direcccion = $_POST['direcccion'];
ValidarDatos($HTTP_POST_VARS['contacto']);
$contacto = $_POST['contacto'];

ValidarDatos($HTTP_POST_VARS['telefono']);
$telefono = $_POST['telefono'];
ValidarDatos($HTTP_POST_VARS['email']);
$email = $_POST['email'];

ValidarDatos($HTTP_POST_VARS['descripcion']);
$descripcion = $_POST['descripcion'];

ValidarDatos($HTTP_POST_FILES['archivo1']);
$archivo = $_FILES['archivo1'];

//validamos la información (ejemplo muy sencillo)
$errores = array();
if ($empresa == ""){
$errores[] = "Falta nombre";
}
if ($ruc == ""){
$errores[] = "Falta edad";
}
if ($archivo[˜name˜] == "" || $foto[˜size˜] == 0){
$errores[] = "Falta la foto";
}

//si hay errores se muestran y se sale del programa
if (count($errores) > 0){
echo "Se han encontrado los siguientes errores:<br />";
foreach($errores as $error){
echo $error."<br />";
}

die("<a href=˜index.html˜>Atrás</a>");
}

//se compone el mensaje
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Host = "localhost";
$mail->From = $email;
$mail->FromName = "pullcreativo.com";
$mail->Subject = "Cotizacion desde PullCreativo.com";
$mail->AddAddress("[email protected]", "Pull Creativo");
$body = "Nuevo socio\r\n";
$body .= "Empresa: $empresa\r\n";
$body .= "RUC: $ruc\r\n";
$mail->Body = $body;
//adjuntamos un archivo
$mail->AddAttachment($archivo[˜tmp_name˜], $archivo[˜name˜]);
$mail->Send();

echo "Solicitud enviada. Gracias.";


?>

Etiquetas: correo, enviar, 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 00:45.