Foros del Web » Programando para Internet » PHP »

Ayuda con PHP Mailer y adjuntos.

Estas en el tema de Ayuda con PHP Mailer y adjuntos. en el foro de PHP en Foros del Web. Buenas, antes que nada a presentarme, pues bueno, estoy empezando con esto de la info y nada, queria pedirles un poco de ayuda con un ...
  #1 (permalink)  
Antiguo 07/01/2009, 00:48
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Ayuda con PHP Mailer y adjuntos.

Buenas, antes que nada a presentarme, pues bueno, estoy empezando con esto de la info y nada, queria pedirles un poco de ayuda con un formulario que quiero poner en mi web de clasificados para coches, es un formulario mediante el cual la perosna interesada me puede enviar la descripcion del coche, pero estaba viendo y me encontre con la funcion de agregar campos y enviar adjuntos con el php mailer y pues me ha gustado aunque no lo he podido hechar a andar, desearia me echaran una manita solo para encaminarme, no les pido que lo hagan todo obviamente, pero si que me iluminen un poco ya que no encuentro por donde "empezar"


he aqui mi problema


Este es el codigo del formulario (esta larguisimo), he visto en el foro como se usa la funcion mail como gmail pero viene solo con 3 campos, entonces quiero saber como declarar las variables de mi formulario en la funcion php para poder enviar el formulario.
  #2 (permalink)  
Antiguo 07/01/2009, 00:49
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

Formulario en html

<p>&nbsp;</p>
<p class="Estilo1 Estilo2">&nbsp;</p>
<form name="formu" id="formu" action="upload.php" method="post" enctype="multipart/form-data">
<p class="Estilo3">Datos del vendedor: (Los campos con simbolo * son necesarios para la publicacion del anuncio)</p>
<span class="Estilo2"><span class="Estilo1">
<table width="100%" border="0">
</span> </span>
<tr>
<td width="34%" class="Estilo3">Nombre:</td>
<td width="66%" class="Estilo3"><label>
<input type="text" name="nombre" id="nombre" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Correo Electronico</td>
<td class="Estilo3"><label>
<input type="text" name="mail" id="mail" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Telefono</td>
<td class="Estilo3"><label>
<input type="text" name="telefono" id="telefono" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Otro Medio De Contacto</td>
<td class="Estilo3"><label>
<input name="telefono" type="text" id="telefono" value="" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Direccion:</td>
<td class="Estilo3"><label>
<textarea name="direccion" id="direccion" cols="45" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td class="Estilo3">Datos del auto a vender:</td>
<td class="Estilo3">&nbsp;</td>
</tr>
<tr>
<td class="Estilo3">Marca*</td>
<td class="Estilo3"><label>
<input type="text" name="marca" id="marca" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Modelo*</td>
<td class="Estilo3"><label>
<input type="text" name="modelo" id="modelo" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Version*</td>
<td class="Estilo3"><label>
<input type="text" name="version" id="version" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Submodelo*</td>
<td class="Estilo3"><label>
<input type="text" name="submodelo" id="submodelo" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Año*</td>
<td class="Estilo3"><label>
<input type="text" name="ano" id="ano" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Numero de cilindros</td>
<td class="Estilo3"><label>
<input type="text" name="cilindros" id="cilindros" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Precio</td>
<td class="Estilo3"><label>
<input type="text" name="precio" id="precio" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Condiciones:</td>
<td class="Estilo3"><label>
<select name="condiciones" id="condiciones">
<option>Fijo</option>
<option>A tratar</option>
<option>Posible Cambio</option>
<option>Acepta financiamiento</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Enganche</td>
<td class="Estilo3"><label>
<input name="enganche" type="text" id="enganche" value="$" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Mensualidades</td>
<td class="Estilo3"><label>
<input name="mensualidades" type="text" id="mensualidades" value="$" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Direccion:</td>
<td class="Estilo3"><label>
<select name="direccion2" id="direccion2">
<option>Hidraulica</option>
<option>Manual</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Color exterior:</td>
<td class="Estilo3"><label>
<input type="text" name="colorext" id="colorext" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Color Interior:</td>
<td class="Estilo3"><label>
<input type="text" name="colorint" id="colorint" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Numero De Puertas:</td>
<td class="Estilo3"><label>
<input type="text" name="nopuertas" id="nopuertas" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Vestiduras:</td>
<td class="Estilo3"><label>
<select name="vestiduras" id="vestiduras">
<option>Piel</option>
<option>Tela</option>
<option>Vinil</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Kilometraje</td>
<td class="Estilo3"><label>
<input type="text" name="kilometraje" id="kilometraje" />
</label></td>
</tr>
<tr>
<td class="Estilo3">Transmicion</td>
<td class="Estilo3"><label>
<select name="transmicion" id="transmicion">
<option>manual</option>
<option>automatica</option>
<option>otro</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Factura</td>
<td class="Estilo3"><label>
<select name="factura" id="factura">
<option>Original</option>
<option>Aseguradora</option>
<option>Empresa</option>
<option>Otros</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Unico Dueño</td>
<td class="Estilo3"><label>
<select name="unico" id="unico">
<option>no</option>
<option>si</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Tenencias</td>
<td class="Estilo3"><label>
<select name="tenencia" id="tenencia">
<option>Debe tenencias</option>
<option>Tenencias Al Corriente</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">Seguro Vigente</td>
<td class="Estilo3"><label>
<select name="seguro" id="seguro">
<option>si</option>
<option>no</option>
</select>
</label></td>
</tr>
<tr>
<td class="Estilo3">&nbsp;</td>
<td class="Estilo3">&nbsp;</td>
</tr>
<tr>
<td class="Estilo3">&nbsp;</td>
<td class="Estilo3">&nbsp;</td>
</tr>
<tr>
<td class="Estilo3">Titulo Del Anuncio</td>
<td class="Estilo3"><label>
<input type="text" name="titulo" id="titulo" />
</label></td>
</tr>
<tr>
<td class="Estilo3">&nbsp;</td>
<td class="Estilo3">&nbsp;</td>
</tr>
<tr>
<td class="Estilo3">Descripcion:</td>
<td class="Estilo3"><label>
<textarea name="descripcion" id="descripcion" cols="45" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td class="Estilo3">Fotos</td>
<td class="Estilo1"><div class="Estilo2" id="adjuntos">
<!-- Hay que prestar atención a esto, el nombre de este campo debe siempre terminar en []
como un vector, y ademas debe coincidir con el nombre que se da a los campos nuevos
en el script -->
<input type="file" name="archivos[]" /><br />
</div></dd>
<dt class="Estilo3"><a href="#" onClick="addCampo()">Subir otro archivo</a></dt>
<dd class="Estilo2"><span class="Estilo1">
<input type="submit" value="Enviar" id="postback" name="postback" />
</td>
</tr>
<tr>
<tr>
  #3 (permalink)  
Antiguo 07/01/2009, 00:49
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

este es el upload.php (muchos seguro ya lo conoceis) aqui es que quisiera que me dijeran como hacer para que los datos de mi formulario envie los datos, como declarar las variables de mi formulario aqui, tanto de los campos normales como el de los file (el javascritp si va bien)

Código PHP:
<?php 
    
    
// Para el envío de mails
    
include_once('class.phpmailer.php');
    
// Indica si los datos provienen del formulario
    
$postback = isset($_POST['postback']) ? true false;
    
    if (
$postback) {
        
extract($_POST);
        
$mail = new phpmailer (); # Crea una instancia
        
$mail -> From $from;
        
$mail -> FromName "BuayaCorp"# Puede obtenerse del formulario, por facilidad se hace de esta manera
        
$mail -> AddAddress ($to);
        
$mail -> Subject $sbj;
        
$mail -> Body $msg;
        
$mail -> IsHTML (true);
        
$archivos '';
        
$msg "Mensaje Enviado";
        
           if (isset (
$_FILES["archivos"])) { # Si es que se subió algún archivo
            
$msg .= "<ul>";
            foreach (
$_FILES["archivos"]["error"] as $key => $error) { # Iterar sobre la colección de archivos
                
if ($error == UPLOAD_ERR_OK) { // Si no hay error
                    
$tmp_name $_FILES["archivos"]["tmp_name"][$key];
                    
$name $_FILES["archivos"]["name"][$key];
                    
$msg .= "<li>$name</li>";
                    
$name uniqid('bc') . '_' $name# Generar un nombre único para el archivo
                    
$mail -> AddAttachment ($tmp_name$name); # Añade el archivo adjunto
                    /*
                    Si se van a guardar los archivos en un directorio, deberían descomentarse
                    las siguientes líneas, si se van a guardar los nombres 
                    de los archivos en una base de datos, aquí debería realizarse algo...                    
                       
                    move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicación, debe tener los permisos necesarios
                    */
                
#if
               
# foreach
            
$msg .= '</ul>';
        } 
# if
        
if (!$mail -> Send ()){
            
$msg "No se pudo enviar el email";
        }
    }
?>



de antemano les agradezco, en lo que me puedan ayudar GRACIAS.
  #4 (permalink)  
Antiguo 07/01/2009, 00:51
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

perdon, se me olvidaba, tambien si me pudieran decir donde declarar mi direccion de email para que me llegue el mensaje. GRACIAS :D
  #5 (permalink)  
Antiguo 07/01/2009, 09:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

Espero esto te pueda ayudar... En el body...este codigo
Código php:
Ver original
  1. <body>
  2. <form id="form1" name="form1" method="get" action="upload.php" enctype="multipart/form-data">
  3.   <table width="80%" border="0" align="center">
  4.     <tr>
  5.       <td width="22%">Nombre</td>
  6.       <td width="78%"><label>
  7.         <input name="txNom" type="text" id="txNom" />
  8.       </label></td>
  9.     </tr>
  10.     <tr>
  11.       <td>Apellido</td>
  12.       <td><input name="txApe" type="text" id="txApe" /></td>
  13.     </tr>
  14.     <tr>
  15.       <td>Direcci&oacute;n</td>
  16.       <td><input name="txDir" type="text" id="txDir" /></td>
  17.     </tr>
  18.     <tr>
  19.       <td>Tel&eacute;fono</td>
  20.       <td><input name="txTel" type="text" id="txTel" /></td>
  21.     </tr>
  22.     <tr>
  23.       <td>E-mail</td>
  24.       <td><input name="txMai" type="text" id="txMai" /></td>
  25.     </tr>
  26.     <tr>
  27.       <td colspan="2"><label>
  28.         <input type="submit" name="Submit" value="Enviar" />
  29.       </label></td>
  30.     </tr>
  31.   </table>
  32. </form>
  33. </body>

y upload.php... este codigo

Código php:
Ver original
  1. <?php
  2. require_once 'class.phpmailer.php';
  3. $nombre=$_GET['txNom'];
  4. $apellido=$_GET['txApe'];
  5. $direccion=$_GET['txDir'];
  6. $telefono=$_GET['txTel'];
  7. $correo=$_GET['txMai'];
  8. $mail = new PHPMailer ();
  9.  
  10. $mail -> From = "Prueba";
  11. $mail -> FromName = "Prueba";
  12. $mail -> AddAddress = "aqui la direccion mail del destinatario";
  13. $mail -> Subject = "Envio datos";
  14. $mail -> Body = "<p>Nombre: <h3>".$nombre."</h3></p><p>Apellido: <h3>".$apellido."</h3></p><p>Dirección: <h3>".$direccion."</h3></p><p>Teléfono: <h3>".$telefono."</h3></p><p>Correo: <h3>".$correo."</h3></p>";
  15. $mail -> IsHTML (true);
  16.  
  17. $mail->IsSMTP();
  18. $mail->Host = 'ssl://smtp.gmail.com';
  19. $mail->Port = 465;
  20. $mail->SMTPAuth = true;
  21. $mail->Username = 'aqui la cuenta gmail';
  22. $mail->Password = 'aqui la contraseña de la cuenta gmail';
  23.  
  24. if(!$mail->Send()) {
  25.     echo "Envio exitoso";
  26. }
  27. else
  28. {   echo "No se pudo enviar";
  29. }
  30.  
  31. ?>
  #6 (permalink)  
Antiguo 07/01/2009, 09:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

El codigo te funciona solo si tienes cuenta en gmail
  #7 (permalink)  
Antiguo 07/01/2009, 12:24
Avatar de heyimedd  
Fecha de Ingreso: enero-2009
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

Cita:
Iniciado por MAURIXIO5540 Ver Mensaje
El codigo te funciona solo si tienes cuenta en gmail


Gracias! pero entonces donde queda mi boton de adjuntar? es decir, puedo añadirlo al primer codigo que me diste con su debido javascript y como veo que ya esta definido "archivos" en el php que me diste, nada mas le tengo que dar el mismo nombre a esa instancia?
  #8 (permalink)  
Antiguo 07/01/2009, 13:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con PHP Mailer y adjuntos.

La verdad nunca he hecho algo parecido... pero puedes visitar http://blog.unijimpe.net/introduccion-a-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 19:01.