Foros del Web » Programando para Internet » PHP »

Mail Form con archivos adjuntos... PHPMailer

Estas en el tema de Mail Form con archivos adjuntos... PHPMailer en el foro de PHP en Foros del Web. Saludos, Me encuentro haciendo un formulario de contacto donde las personas pueden ingresar varias imagenes y enviarlas como archivos adjuntos... AL principio con los datos ...
  #1 (permalink)  
Antiguo 18/09/2012, 14:03
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.718
Antigüedad: 12 años, 2 meses
Puntos: 28
Mail Form con archivos adjuntos... PHPMailer

Saludos,

Me encuentro haciendo un formulario de contacto donde las personas pueden ingresar varias imagenes y enviarlas como archivos adjuntos... AL principio con los datos basicos funcionaba, ahora que tengo mi formulario completo con todos loa campos el mismo no quiere enviar, no funciona..

Alguien podria ayudarme?

Código PHP:
<?php
$direccion_envio
'[email protected]';                                 

$url'http://www.fullrapido.com/publicate/prueba';     

$cantidad_archivos10;                                                         
?>
<?PHP
if (isset ($_POST['enviar'])) {

require(
"inc/class.phpmailer.php");

$mail = new PHPMailer();

$mail->From     $_POST['mail'];
$mail->FromName $_POST['nombre'];
$mail->AddAddress($direccion_envio); 
$mail->Subject "Publicate FullRapido";
$mail->AddReplyTo($_POST['mail'],$_POST['nombre']);
$mail->IsHTML(true);

if (isset(
$_FILES['archivo']['tmp_name'])) {
    
$achivos_adjuntos='';                    
    
$i=0;
    do  {
        if(
$_FILES['archivo']['tmp_name'][$i] !=""
            { 
            
$aleatorio rand(); 
            
$nuevonombre $aleatorio.'-'.$_FILES['archivo']['name'][$i];
            
copy($_FILES['archivo']['tmp_name'][$i],'archivos/'.$nuevonombre);
            
$achivos_adjuntos .= '<br /><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a></strong>';
            
$mail->AddAttachment($_FILES['archivo']['tmp_name'][$i], $nuevonombre);
            }    
            
$i++;
        } while (
$i $cantidad_archivos);

}

if (
$_POST['nombre']!='' && $_POST['rif']!='' && $_POST['direccion']!='' && $_POST['telefono1']!='' && $_POST['telefono2']!='' && $_POST['telefono3']!='' && $_POST['fax']!='' && $_POST['web']!='' && $_POST['mail']!='' && $_POST['mail2']!='' && $_POST['dominio']!='' && $_POST['mision']!='' && $_POST['vision']!='' && $_POST['servicios']!='' && $_POST['red1']!=''  && $_POST['red2']!=''  && $error_archivo=='') {

$nombre=$_POST['nombre'];
$rif=$_POST['rif'];
$direccion=$_POST['direccion'];
$telefono1=$_POST['telefono1'];
$telefono2=$_POST['telefono2'];
$telefono3=$_POST['telefono3'];
$fax=$_POST['fax'];
$web=$_POST['web'];
$mail=$_POST['mail'];
$mail2=$_POST['mail2'];
$dominio=$_POST['dominio'];
$mision=$_POST['mision'];
$vision=$_POST['vision'];
$servicios=$_POST['servicios'];
$red1=$_POST['red1'];
$red2=$_POST['red2'];

$contenido '<html><body>';
$contenido .= '<h2>Publicate FullRapido.com</h2>';
$contenido .= '<p>Enviado el '.  date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<p>Nombre: <strong>'.$nombre.'</strong></p>';
$contenido .= '<p>RIF: <strong>'.$rif.'</strong></p>';
$contenido .= '<p>Dirección: <strong>'.$direccion.'</strong></p>';
$contenido .= '<p>Teléfonos: <strong>'.$telefono1.'</strong><strong>'.$telefono2.'</strong><strong>'.$telefono3.'</strong></p>';
$contenido .= '<p>FAX: <strong>'.$fax.'</strong></p>';
$contenido .= '<p>Página Web: <strong>'.$web.'</strong></p>';
$contenido .= '<p>Email: <strong>'.$mail.'</strong> <strong>'.$mail2.'</strong></p>';
$contenido .= '<p>Sub-Dominio: <strong>'.$dominio.'</strong></p>';
$contenido .= '<p>Misión: <strong>'.$mision.'</strong></p>';
$contenido .= '<p>Visión: <strong>'.$vision.'</strong></p>';
$contenido .= '<p>Servicios: <strong>'.$servicios.'</strong></p>';
$contenido .= '<p>Red Social 1: <strong>'.$red1.'</strong></p>';
$contenido .= '<p>Red Social 2: <strong>'.$red2.'</strong></p>';
$contenido .= '<hr />';
$contenido .= '<p>Archivos Adjuntos: '.$achivos_adjuntos.'</p>';
$contenido .= '<hr />';
$contenido .= '</body></html>';

$mail->Body    $contenido;

$mail->Send();

$flag='ok';
$mensaje='<div id="ok">Sus archivos han sido adjuntados con &eacute;xito<br /> Gracias por Contactarnos</div>';
} else {
    
$flag='err';
$mensaje='<div id="error">- Los Campos Marcados Con * Son Requeridos. '.$error_archivo.'</div>';

}
}
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 18/09/2012, 14:08
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.718
Antigüedad: 12 años, 2 meses
Puntos: 28
Respuesta: Mail Form con archivos adjuntos... PHPMailer

Mi formulario
Código PHP:
<div id="form">
        
<h2><?php echo $mensaje/*mostramos el estado de envio del form */ ?>

<?php if($cantidad_archivos 1) {$plural='s';} else {$plural='';} ?>

<?php if ($flag!='ok') { ?>
</h2>
<form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
<table width="100%" align="center">
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" nowrap="nowrap" class="titulos2">Datos de la empresa</td>
  </tr>
  <tr valign="baseline">
    <td width="263" align="left" valign="middle" nowrap="nowrap" class="textoFOOTER2">    <p><strong>Nombre*</strong><br />
    <input  size="40" <?php if (isset ($flag) && $_POST['nombre']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="nombre" value="<?php echo $_POST['nombre'];?>" /></p></td>
    <td width="50" align="left" valign="middle" nowrap="nowrap" class="textoFOOTER2">&nbsp;</td>
    <td width="522" align="left" valign="middle" nowrap="nowrap" class="textoFOOTER2">    <p><strong>RIF*</strong><br />
    <input name="rif" type="text" id="rif" value="<?php echo $_POST['rif'];?>"  size="40" <?php if (isset ($flag) && $_POST['rif']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> /></p></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="right" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">    <p><strong>Dirección*</strong>
      <input  size="70" <?php if (isset ($flag) && $_POST['direccion']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="direccion" value="<?php echo $_POST['direccion'];?>" /></p></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFECHA">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">    <p><strong>Teléfonos*</strong>
      <input  size="40" <?php if (isset ($flag) && $_POST['telefono1']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="telefono1" value="<?php echo $_POST['telefono1'];?>" /> 
      <input  size="40" <?php if (isset ($flag) && $_POST['telefono2']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="telefono2" value="<?php echo $_POST['telefono2'];?>" /> 
      <input  size="40" <?php if (isset ($flag) && $_POST['telefono3']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="telefono3" value="<?php echo $_POST['telefono3'];?>" />
    </p></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2"><p><strong>FAX*</strong>
        <input name="fax" type="text" id="fax" value="<?php echo $_POST['fax'];?>"  size="40" <?php if (isset ($flag) && $_POST['fax']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> /> 
      <strong>Página Web*</strong>
      <input name="web" type="text" id="web" value="<?php echo $_POST['web'];?>"  size="40" <?php if (isset ($flag) && $_POST['web']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    </td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFECHA">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2"><p><strong>Correo*</strong>
        <input name="mail" type="text" id="mail" value="<?php echo $_POST['mail'];?>"  size="40" <?php if (isset ($flag) && $_POST['mail']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> />
      <input name="mail2" type="text" id="mail2" value="<?php echo $_POST['mail2'];?>"  size="40" <?php if (isset ($flag) && $_POST['mail2']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> />
    </td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="titulo_central">Informaci&oacute;n para publicaci&oacute;n</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2"><span class="titulo_central">*</span><span class="texto2"> Nombre del subdominio</span>
      <input name="dominio" type="text" id="dominio" value="<?php echo $_POST['dominio'];?>"  size="40" <?php if (isset ($flag) && $_POST['dominio']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> />
      <span class="texto2">.fullrapido.com</span></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2"></select></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="titulo_central">Informaci&oacute;n para su perfil</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="top" class="textoFOOTER2"><span class="texto2"><strong>Misión*</strong><br />
        <textarea cols="60"  rows="10"<?php if (isset ($flag) && $_POST['mision']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="mision"><?php echo $_POST['mision'];?></textarea>
    </span></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="top" class="textoGENERAL3"><span class="texto2"><strong>Visión*</strong><br />
        <textarea cols="60"  rows="10"<?php if (isset ($flag) && $_POST['vision']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="vision"><?php echo $_POST['vision'];?></textarea>
    </span></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="top" class="textoFOOTER2"><span class="texto2"><strong>Servicios*</strong><br />
        <textarea cols="60"  rows="10"<?php if (isset ($flag) && $_POST['servicios']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="servicios"><?php echo $_POST['servicios'];?></textarea>
    </span></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="top" class="titulo_central">Redes Soiales</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" valign="middle" class="textoFOOTER2">&nbsp;</td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="right" valign="middle" class="textoFOOTER2"><table width="100%" border="0" cellspacing="2" cellpadding="0">
      <tr>
        <td><p><strong>Red 1*</strong><br />
    <input  size="40" <?php if (isset ($flag) && $_POST['red1']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="red1" value="<?php echo $_POST['red1'];?>" /></p></td>
        <td>&nbsp;</td>
        </tr>
      <tr>
        <td><p><strong>Red 2*</strong><br />
    <input  size="40" <?php if (isset ($flag) && $_POST['red2']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="red2" value="<?php echo $_POST['red2'];?>" /></p></td>
        <td>&nbsp;</td>
        </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Archivos o Imágenes a adjuntar:<br />Puede adjuntar hasta <?=$cantidad_archivos?> archivo<?=$plural?>.<br /><br />
    <input type="file" class="multi max-<?=$cantidad_archivos?>"  name="archivo[]" value="<?=$_FILES['archivos']?>"><br /><br /></td>
        <td>&nbsp;</td>
      </tr>
    </table></td>
  </tr>
  <tr valign="baseline">
    <td align="left" valign="middle" class="Estilo6"><div align="left">
      <input type="hidden" name="MM_insert" value="form1" />
      </div></td>
    <td align="left" valign="middle">&nbsp;</td>
    <td align="left" valign="middle"><div align="left"></div></td>
  </tr>
  <tr valign="baseline">
    <td colspan="3" align="left" nowrap="nowrap"><input type="checkbox" value="1" name="termin" id="termin" />
      <span class="titulos2"> He leido y aceptado los</span><span class="titulo_ofertas"> t&eacute;rminos y condiciones</span><span class="titulos2"> de fullrapido.com</span></td>
  </tr>
  <tr valign="baseline">
    <td nowrap="nowrap" align="right">&nbsp;</td>
    <td>&nbsp;</td>
    <td><div align="left">
      <input name="submit" type="submit" class="titulos3" value="Insertar registro" />
    </div></td>
  </tr>
</table>
    </form>
<?php ?>
    </div>
si desean verlo aqui esta la maqueta

http://www.fullrapido.com/publicate/...ontactenos.php

Gracias de antemano

PDTA: Disculpen que escriba dos post seguidos... El foro no me dejaba postear mi codigo completo...
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #3 (permalink)  
Antiguo 18/09/2012, 14:24
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 17 años, 11 meses
Puntos: 4
Respuesta: Mail Form con archivos adjuntos... PHPMailer

Verificalo con este ejemplo que me consta que funciona :

http://blog.unijimpe.net/enviar-email-con-adjuntos/

Saludos.
__________________
EL LIMITE ES EL UNIVERSO
  #4 (permalink)  
Antiguo 18/09/2012, 14:49
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.718
Antigüedad: 12 años, 2 meses
Puntos: 28
Respuesta: Mail Form con archivos adjuntos... PHPMailer

es el mismo... lo que quiero es ver pq ya no me esta funcioonando al agregar mas campos....
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #5 (permalink)  
Antiguo 19/09/2012, 07:58
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.718
Antigüedad: 12 años, 2 meses
Puntos: 28
Respuesta: Mail Form con archivos adjuntos... PHPMailer

alguien que haya podido encontrar mi error??? Aún sigo sin entender que le pasó pues el modelo que descargue funcionaba, bastó que le agregara los campos nuevos y empezó a fallar

asi estaba el primer codigo
Código PHP:
<?php
/*
Contactenos V4 - 26/06/2011 
este formulario utiliza la clase PHPMailer para el envio y proceso.
Es solo un ejemplo de una posible implementacion de PHPMailer
La clase se puede descargar desde http://phpmailer.sourceforge.net/
Junto con mas ejemplos y documentacion.

Para preguntas y soporte sobre este formulario se pueden utilizar los comentarios.
También se pueden hacer consultas via Twitter: @alfonsocatron
*/

/*
NOTA: 
este archivo debe estar acompañado de una carpeta
con el nombre "archivos" en donde se copiaran los
archivos. Esta carpeta debe tener chmod 777. 
*/
//CONFIGURACION 

$direccion_envio'[email protected]';                                 
//la direccion a la que se enviara el email.

$url'http://www.alfonsocatron.com.ar/ejemplos/form-adjunto-multiple';     
//la URL donde esta publicado el formulario. SIN la barra al final

$cantidad_archivos10;                                                         
//la cantidad máxima de archivos que se permitirá enviar.

//FIN CONFIGURACION
?>


<?PHP
//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['enviar'])) {

// vamos a hacer uso de la clase phpmailer, 
require("inc/class.phpmailer.php");

$mail = new PHPMailer();

//recogemos las variables y configuramos PHPMailer
$mail->From     $_POST['email'];
$mail->FromName $_POST['nombre'];
$mail->AddAddress($direccion_envio); 
$mail->Subject "Contacto desde el Formulario";
$mail->AddReplyTo($_POST['email'],$_POST['nombre']);
$mail->IsHTML(true);                              
$comentario=$_POST['comentario'];


//comprobamos si se adjuntaron archivos, los cargamos en el servidor y los pasamos como adjuntos del email
if (isset($_FILES['archivo']['tmp_name'])) {
    
$achivos_adjuntos='';                    
    
$i=0;
    do  {
        if(
$_FILES['archivo']['tmp_name'][$i] !=""
            { 
            
$aleatorio rand(); 
            
$nuevonombre $aleatorio.'-'.$_FILES['archivo']['name'][$i];
            
copy($_FILES['archivo']['tmp_name'][$i],'archivos/'.$nuevonombre);
            
$achivos_adjuntos .= '<br /><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a></strong>';
            
$mail->AddAttachment($_FILES['archivo']['tmp_name'][$i], $nuevonombre);
            }    
            
$i++;
        } while (
$i $cantidad_archivos);

}

//comprobamos si todos los campos fueron completados
if ($_POST['email']!='' && $_POST['nombre']!='' && $_POST['comentario']!='' && $error_archivo=='') {

$email=$_POST['email'];
$nombre=$_POST['nombre'];
$comentario=$_POST['comentario'];

//armamos el html
$contenido '<html><body>';
$contenido .= '<h2>Contacto desde formulario</h2>';
$contenido .= '<p>Enviado el '.  date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<p>Nombre: <strong>'.$nombre.'</strong></p>';
$contenido .= '<p>Email: <strong>'.$email.'</strong></p>';
$contenido .= '<p>Comentario: <strong>'.$comentario.'</strong></p>';
$contenido .= '<hr />';
$contenido .= '<p>Archivos Adjuntos: '.$achivos_adjuntos.'</p>';
$contenido .= '<hr />';
$contenido .= '</body></html>';

$mail->Body    $contenido;
// si todos los campos fueron completados enviamos el mail

$mail->Send();

$flag='ok';
$mensaje='<div id="ok">Sus archivos han sido adjuntados con &eacute;xito<br /> Gracias por Contactarnos</div>';
} else {
    
//si no todos los campos fueron completados se frena el envio y avisamos al usuario    
$flag='err';
$mensaje='<div id="error">- Los Campos Marcados Con * Son Requeridos. '.$error_archivo.'</div>';

}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Contactenos - v4</title>
        <link href="css/contactenos.css" rel="stylesheet" type="text/css" />        
        <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
        <script src="js/jquery.form.js" type="text/javascript" language="javascript"></script>
        <script src="js/jquery.MultiFile.pack.js" type="text/javascript" language="javascript"></script>

    </head>
    <body>
    <div id="form">
        
<h2>Formulario de Contacto v4</h2>
<p>Ejemplo del formulario de contacto con env&iacute;o de múltiples archivos adjuntos en el mail</p>

<?php echo $mensaje/*mostramos el estado de envio del form */ ?>

<?php if($cantidad_archivos 1) {$plural='s';} else {$plural='';} ?>

<?php if ($flag!='ok') { ?>
<form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
    <p><strong>Nombre*</strong><br />
    <input  size="40" <?php if (isset ($flag) && $_POST['nombre']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="nombre" value="<?php echo $_POST['nombre'];?>" /></p>
    
    <p><strong>Email*</strong><br />
    <input size="40" <?php if (isset ($flag) && $_POST['email']=='') { echo 'class="error"';} else {echo 'class="campo"';} ?> type="text" name="email"  value="<?php echo $_POST['email'];?>" /></p>


    <p><strong>Adjuntar Archivos</strong><br />
        Puede adjuntar hasta <?=$cantidad_archivos?> archivo<?=$plural?>.<br /><br />
    <input type="file" class="multi max-<?=$cantidad_archivos?>"  name="archivo[]" value="<?=$_FILES['archivos']?>"><br /><br /></p>
        
    <p><strong>Comentario*</strong><br />
    <textarea cols="60"  rows="10"<?php if (isset ($flag) && $_POST['comentario']=='') { echo 'class="com-error"';} else {echo 'class="com"';} ?> name="comentario"><?php echo $_POST['comentario'];?></textarea></p>
    <p><input class="boton" type="submit" name="enviar" value="enviar" /></p>
    </form>
<?php ?>
    </div> <!-- end form-->

    </body>
</html>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...

Última edición por T4ke0veR; 19/09/2012 a las 09:11

Etiquetas: adjuntos, formulario, html, imagenes, mail, phpmailer
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:30.