Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2011, 19:23
cpuser
 
Fecha de Ingreso: diciembre-2005
Ubicación: Mar del Plata
Mensajes: 146
Antigüedad: 20 años, 9 meses
Puntos: 2
Mandar mail con adjunto

Que tal foreros? Tuve unos problemas con un servidor en Windows el cual no tiene servidor SMTP por lo que estuve buscando y aca mismo en forosdelweb encontre un codigo que me permite mediante PHP Mailer utilizar un servidor SMTP diferente a donde esta alojada la pagina.

Hasta ahi perfecto, envia mails sin ningun problema, lo unico que necesito adjuntar un archivo y aunque siga las directivas que aparecen en PHP Mailer y todo lo que pude investigar, solo puedo attachear el archivo si se encuentra alojado en el servidor, si viene desde un formulario multipart/formdata no funciona.

aca les dejo el codigo a ver si alguien me hecha una manito (las partes en negrita son las que agregué para el adjunto):

EDITO PARA AVISAR QUE LAS NEGRITAS DENTRO DE CODIGO NO FUNCIONAN Y LO QUE YO HE AGREGADO SE ENCUENTRA ENTRE ETIQUETAS [B ]

Código PHP:
function SendMAIL($para,$subject,[B]$adjunto[/B],$body,$altbody,$mailFROM,$mailNameCompany,){ 
require 
"../includes/class.phpmailer.php"; 

[
B]$varname = $_FILES["archivo"]["name"];
$vartemp = $_FILES["archivo"]["tmp_name"];[/B]

$mail = new phpmailer(); 
$mail->PluginDir = "../includes/"; 
$mail->Mailer = "smtp"; 
$mail->Host = "mail.dominio.com"; # Editar el Host smtp 
$mail->SMTPAuth = true; 
$mail->Username = "[email protected]"; # editar el usuario 
$mail->Password = "psw"; # Editar el password 
$mail->From = $mailFROM; 
$mail->FromName = $mailNameCompany; 
$mail->Subject = $subject; 
$email = $para; 
[
B]$mail->AddAttachment($vartemp, $varname) = $adjunto;[/B]
$body = $body; 
$mail->Body = $body; 
$mail->AltBody = $altbody; 
$mail->Timeout=20; 
$mail->AddAddress($email);
$exito = $mail->Send(); 
     
$intentos=1;  
       while((!
$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){ 
       
sleep(5); 
            
$exito = $mail->Send(); 
            
$intentos=$intentos+1;                 
       } 
 
    if (
$mail->ErrorInfo=="SMTP Error: Data not accepted") { 
       
$exito=true; 
        } 
return 
$exito; 
}  


$variables = $_POST["variables"];

$para = "[email protected]"; 
$subject = "Web"; 

$altbody = ""; 


$body = ""; 


$mailNameCompany = $nombre; 
$mailFROM = $mail; 
[
B]$adjunto = $varname;[/B]

if(
SendMAIL($para,$subject,[B]$adjunto[/B],$body,$altbody,$mailFROM,$mailNameCompany)){ 
header("Location: "); 
} 
else{ 
header("Location: "); 
} 

Ojalá alguien pueda ayudar, muchas gracias!
__________________
Me gusta mucho ver Videos de carros en internet :)