Foros del Web » Programando para Internet » PHP »

Enviar Email con Adjuntos

Estas en el tema de Enviar Email con Adjuntos en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/05/2008, 16:03
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
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.

Última edición por maximous1979; 13/05/2008 a las 16:22 Razón: le cambio el titulo
  #2 (permalink)  
Antiguo 13/05/2008, 18:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 2 meses
Puntos: 0
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.
  #3 (permalink)  
Antiguo 14/05/2008, 15:38
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
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
  #4 (permalink)  
Antiguo 15/05/2008, 21:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 171
Antigüedad: 16 años, 2 meses
Puntos: 0
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.
  #5 (permalink)  
Antiguo 16/05/2008, 15:04
 
Fecha de Ingreso: abril-2008
Mensajes: 9
Antigüedad: 16 años
Puntos: 0
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.
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 13:57.