Foros del Web » Programando para Internet » PHP »

Ayuda!!!! Adjuntar Archivo En Mail Php

Estas en el tema de Ayuda!!!! Adjuntar Archivo En Mail Php en el foro de PHP en Foros del Web. Hola, estoy intentando envíar un formulario por email, pero necesito enviar también un fichero que incluyo en ese formulario. Estoy utilizando la clase phpmailer para ...
  #1 (permalink)  
Antiguo 19/06/2007, 11:30
 
Fecha de Ingreso: abril-2007
Mensajes: 66
Antigüedad: 17 años
Puntos: 0
Ayuda!!!! Adjuntar Archivo En Mail Php

Hola,

estoy intentando envíar un formulario por email, pero necesito enviar
también un fichero que incluyo en ese formulario. Estoy utilizando la
clase phpmailer para enviar el email, todos los campos del formulario se
enviar correctamente, pero no el archivo.

Aquí os pongo el código por si alguien me puede echar una mano... he
estado buscando por internet pero el código parece estar correcto:


<?
$error="";
$enviar = $_POST['enviar'];
if ($enviar != "") {
$host = "mail.ocreativo.com";
$userName = "[email protected]";
$password = "circulo";

$direcciones["direccion1"]="[email protected]";

require "includes/class.phpmailer.php";

$mail = new phpmailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = $host;

$mail->SMTPAuth = true;

$mail->Username = $userName;
$mail->Password = $password;

$mail->From = "[email protected]";
$mail->FromName = "Ronald lau";

$mail->Subject = "Formulario";
$cuerpo = "<b>Formulario de contacto para empleo desde web</b>";
$cuerpo = $cuerpo."<br /><br />";
$cuerpo = $cuerpo."Nombre: ".$_POST['nombre'];
$cuerpo = $cuerpo."<br />";
$cuerpo = $cuerpo."Email: ".$_POST['email'];
$cuerpo = $cuerpo."<br />";
$cuerpo = $cuerpo."Asunto: ".$_POST['asunto'];
$cuerpo = $cuerpo."<br />";
$cuerpo = $cuerpo."Mensaje: ".$_POST['mensaje'];
$cuerpo = $cuerpo."<br />";

$mail->Body = $cuerpo;

$mail->AltBody ="Formulario de contacto para empleo desde web";
$mail->Timeout=120;

$archivo = $_POST['archivo'];
//if ($archivo !="none") {
$adjunto = $mail->AddAttachment($archivo,"curriculum.doc");
//}
reset($direcciones);
while (list($clave, $valor)=each($direcciones)) {
$mail->AddAddress($valor);

$exito = $mail->Send();

$intentos=1;
while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP
Error: Data not accepted")){ sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}

if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;
}

if(!$exito)
{
echo "Problemas enviando correo electronico a ".$valor;
echo "<br>".$mail->ErrorInfo;
}
else
{
$mensaje="<p>Has enviado un mensaje a:<br>";
$mensaje.=$valor." ";
if ($archivo !="none") {
$mensaje.="Con un fichero adjunto llamado ".$archivo;
}
$mensaje.="</p>";
echo $mensaje;


}
$mail->ClearAddresses();

}
echo "adjunto: ".$adjunto." | ";
echo "archivo: ".$archivo;
echo "<a href='prueba1.php'> VOLVER AL FORMULARIO</a>";
}
else {
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Titulo</title>
</head>
<body class="bodyenlaces">
<div id="empleo">

<h1 class="tituloempleo">Trabaje con nosotros</h1>
<form enctype="multipart/form-data" method="post" action="<? echo
$_SERVER['PHP_SELF']; ?>">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td><label for="nombre">Nombre: </label></td>
<td><input type="text" name="nombre" id="nombre" size="30"
maxlenght="80"/></td>
</tr>
<tr>
<td><label for="email">E-mail: </label></td>
<td><input type="text" name="email" id="email" size="30"
maxlenght="50"/></td>
</tr>
<tr>
<td><label for="asunto">Asunto: </label></td>
<td><input type="text" name="asunto" id="asunto" size="30"
maxlenght="50"/></td>
</tr>
<tr>
<td><label for="mensaje">Mensaje: </label></td>
<td><textarea type="text" name="mensaje" id="mensaje"
cols="30" rows="5"></textarea></td>
</tr>
<tr>
<td><label for="archivo">Currículum: </label></td>
<td><input type="file" name="archivo" id="archivo" /></td>
</tr>
<tr>
<td colspan="2" class="align-derecha"><input type="submit"
value="Enviar" name="enviar" /></td>
</tr>
</table>
<p>
</p>
</form>

</div>
</body>
</html>
<?
}
?>



alguien tendra una solucion o un script pero que funcione ya q no he encontrado hasta ahora uno que funcione realemnete,se los voy a agradecer mucho

Saludos
  #2 (permalink)  
Antiguo 19/06/2007, 11:36
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Ayuda!!!! Adjuntar Archivo En Mail Php

Tu archivo se guarda temporalmente en el servidor, por eso no lo encuentra, necesitas copiarlo a alguna parte de tu servidor y así poner la ruta exacta que tiene este para poder ser enviado.

Edito: Algo como esto

Código PHP:
$ruta 'files/'.$_FILES['archivo']['name'];
move_uploaded_file($_FILES['archivo']['tmp_name'], $ruta); 
Y ésta línea
Código PHP:
$archivo $_POST['archivo']; 
quedaría así...
Código PHP:
$archivo $ruta
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #3 (permalink)  
Antiguo 19/06/2007, 12:14
 
Fecha de Ingreso: abril-2007
Mensajes: 66
Antigüedad: 17 años
Puntos: 0
Re: Ayuda!!!! Adjuntar Archivo En Mail Php

el primero codigo php, es para alojar mi archivo adjunto a mi servidor verdad?, y lo demas colocarlo antes de q empiece el codigo paar enviar estamos?




Gracias
  #4 (permalink)  
Antiguo 19/06/2007, 20:47
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Re: Ayuda!!!! Adjuntar Archivo En Mail Php

Si, primero subes el archivo con la primera parte del código que te puse, y el reemplazo pues va en la línea correspondiante a la variable $archivo de tu código, después de mandar el correo sería conveniente que borraras el archivo, la función unlink te puede servir http://www.php.net/manual/es/function.unlink.php
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #5 (permalink)  
Antiguo 20/06/2007, 12:29
 
Fecha de Ingreso: abril-2007
Mensajes: 66
Antigüedad: 17 años
Puntos: 0
Re: Ayuda!!!! Adjuntar Archivo En Mail Php

gracias por la ayuda, aun no he probado la solucion que me diste, me parece muy buena idea, yo tengo un script q me permite guardar archivos a mi base de datos, lo que se me ha ocurrido y no se si sera posible que yo jale el archivo de mi base y lo adjunte, seria la misma operacion q tendria q realizar, y sera factible esa idea?


Gracias
  #6 (permalink)  
Antiguo 20/06/2007, 12:40
 
Fecha de Ingreso: abril-2007
Mensajes: 66
Antigüedad: 17 años
Puntos: 0
Re: Ayuda!!!! Adjuntar Archivo En Mail Php

gracias por la ayuda, aun no he probado la solucion que me diste, me parece muy buena idea, yo tengo un script q me permite guardar archivos a mi base de datos, lo que se me ha ocurrido y no se si sera posible que yo jale el archivo de mi base y lo adjunte, seria la misma operacion q tendria q realizar, y sera factible esa idea?


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:01.