Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   Enviar Email con Adjuntos (http://www.forosdelweb.com/f18/enviar-email-con-adjuntos-586119/)

maximous1979 13/05/2008 16:03

Enviar Email con Adjuntos
 
Como les va, a continuacion dejo un codigo q saque de una web que sirve para enviar email con un adjunto a traves del Php mailer, es simple:

ESTE SERIA EL FORMULARIO
Código:

<form action="" method="post" enctype="multipart/form-data">
 
      Destinatario <input type="text" name="destino"><br>
 
      Asunto <input type="text" name="asunto"><br>
 
      Adjunto <input type="file" name="archivo"><br>
 
      Mensaje <textarea name="mensaje"></textarea><br>
 
      <input type="submit" name="btsend" value="Enviar Email">
 
      <input type="hidden" name="action" value="send" />

      </form>


Lo siguiente es crear una instancia de la clase PHPMailer


Código:

require("class.phpmailer.php");

      if ($_POST['action'] == "send") {

          $varname = $_FILES['archivo']['name'];

          $vartemp = $_FILES['archivo']['tmp_name'];

       

          $mail = new PHPMailer();

          $mail->Host = "localhost";

        $mail->From = $_POST['destino'];

          $mail->Subject = $_POST['asunto'];

          $mail->AddAddress([email protected]);

          if ($varname != "") {

              $mail->AddAttachment($vartemp, $varname);

          }

          $body = "<strong>Mensaje</strong><br><br>";

          $body.= $_POST['mensaje']."<br>";

          $body.= "<i>Enviado por http://blog.unijimpe.net</i>";

          $mail->Body = $body;
 
          $mail->IsHTML(true);
 
          $mail->Send();
 
      }

Bien hasta ahi esta el codigo, el tema es q no se donde pego cada codigo. Pregunto: el formulario debe hacerse en un archivo html o en el mismo php de este ultimo codigo q puse? y si van los dos en el mismo php como se deberia poner?
Una ultima consulta en la parte del form, el form action: tiene doble comillas
form action:"".... es asi o va algo entre las comillas?

Desde ya muchas gracias a los q me puedan ayudar en esta simple tarea.

MadKat 13/05/2008 18:19

Re: Enviar Email con Adjuntos
 
En una pagina coloca el codigo de arriba. (formulario) en el action, has referencia al archivo "nombre.php" con el segundo codigo.

El tipo de codificacion del form debe ser: multipart/form-data

Recuerda que debes tener el archivo "class.phpmailer.php" tambien en el directorio donde estan tus archivos (formulario y procesador)

Avisa como te fue.

Besos, Agus.

maximous1979 14/05/2008 15:38

Re: Enviar Email con Adjuntos
 
Bueno Agus la verdad q lo q me dejaste me fue de gran ayuda, funciono. Pero ya q estamos en el baile... bailemos, te hago otra consulta.
Intente de todas formas agregar en el formulario otro espacio para rellenar como por ejemplo para colocar el nombre

Código:

Nombre <input type="text" name="nombre"
En el form sale perfecto, lo q si no puedo configurarlo bien en el codigo php para q me llegue el "Nombre" al mail. Como deberia configurarlo en el codigo php?

Y lo ultimo es si tb en el form quiero colocar para q haya otra casilla para adjuntar otra imagen, o sea q haya dos. Como debo colocarlo en el codigo php?

Código:

Adjunto <input type="file" name="archivo">
Adjunto2 <input type="file" name="archivo2">

Por las dudas aca te dejo de nuevo el codigo php

Código PHP:

require("class.phpmailer.php");

      if (
$_POST['action'] == "send") {

          
$varname $_FILES['archivo']['name'];

          
$vartemp $_FILES['archivo']['tmp_name'];

         

          
$mail = new PHPMailer();

          
$mail->Host "localhost";

         
$mail->From $_POST['destino'];

          
$mail->Subject $_POST['asunto'];

          
$mail->AddAddress(mail@dominio.com);

          if (
$varname != "") {

              
$mail->AddAttachment($vartemp$varname);

          }

          
$body "<strong>Mensaje</strong><br><br>";

          
$body.= $_POST['mensaje']."<br>";

          
$body.= "<i>Enviado por http://blog.unijimpe.net</i>";

          
$mail->Body $body;
 
          
$mail->IsHTML(true);
  
          
$mail->Send();

      } 

Si me ayudas en eso solucionarias todas mis dudas y asi poder terminar una web q estoy haciendo. TE AGRADEZCO MUCHO POR LA AYUDA

MadKat 15/05/2008 21:01

Respuesta: Enviar Email con Adjuntos
 
Para agregar mas archivos, si ves esta parte (esto en el archivo PHP)

Código PHP:

$varname $_FILES['archivo']['name'];

          
$vartemp $_FILES['archivo']['tmp_name']; 

ahi aparece lo de un archivo,

agrega:

Código PHP:

$varname $_FILES['archivo2']['name'];

          
$vartemp $_FILES['archivo2']['tmp_name']; 


Para que aparezca el campo "Nombre"

en la parte de abajo agrega ARRIBA DE:

Código PHP:

$body.= $_POST['mensaje']."<br>"

esto:

Código PHP:

$body.= $_POST['nombre']."<br>"

Espero haberte ayudado, avisanos como te fue.

Besos, Agus.

maximous1979 16/05/2008 15:04

Respuesta: Enviar Email con Adjuntos
 
Vos sabes q ya habia probado con ese metodo q me pusiste, pero no funciona, solo me sigue mandado el mensaje, el nombre ni a palos
Código PHP:

$body.= $_POST['mensaje']
$body.= $_POST['nombre'

y una sola imagen
Código PHP:

$varname $_FILES['archivo']['name'];
          
$vartemp $_FILES['archivo']['tmp_name'];
$varname $_FILES['archivo2']['name'];
          
$vartemp $_FILES['archivo2']['tmp_name']; 

puse exactamente lo q me pusiste vos y nada... que sera?
igual gracias.


La zona horaria es GMT -6. Ahora son las 06:01.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.