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!