Código :
require "mailer/class.phpmailer.php"; //Instanciar el objeto $mail = new phpmailer(); //Con PluginDir le indicamos a la clase phpmailer donde se //encuentra la clase smtp para enviar correo con smtp $mail->PluginDir = "mailer/"; //Con la propiedad Mailer le indicamos que vamos a usar un //servidor smtp $mail->Mailer = "smtp"; //Asignamos a Host el nombre de nuestro servidor smtp $mail->Host = "mail.midominio.com"; //Le indicamos que el servidor smtp requiere autenticación $mail->SMTPAuth = true; //Le decimos cual es nuestro nombre de usuario y password $mail->Username = "[email protected]"; $mail->Password = "miclave"; //Indicamos cual es nuestra dirección de correo y el nombre que //queremos que vea el usuario que lee nuestro correo $mail->From = $email_remitente; $mail->FromName =$remitente; //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar //una cuenta gratuita, por tanto lo pongo a 30 $mail->Timeout=30; //Indicamos cual es la dirección de destino del correo $mail->AddAddress($email); //Asignamos asunto y cuerpo del mensaje $mail->Subject = $_POST['asunto']; $mail->AltBody = nl2br($_POST['mensaje']); /////////////////// //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario if ($achivo !="none") { $mail->AddAttachment($archivo,$archivo_name); } //Enviar el archivo $exito = $mail->Send(); //////////////////////////////////// //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas //como mucho para intentar enviar el mensaje, cada intento se hara 5 s //segundos despues del anterior, para ello se usa la funcion sleep $intentos=1; while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){ sleep(5); //echo $mail->ErrorInfo; $exito = $mail->Send(); $intentos=$intentos+1; } //La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente if ($mail->ErrorInfo=="SMTP Error: Data not accepted") { $exito=true; $estado_envio="El correo ha sido enviado correctamente a la dirección $email"; } if(!$exito){ $estado_envio="El correo no ha sido enviado porque se ha producido el siguiente error:<p>".$mail->ErrorInfo; }else{ $estado_envio="El correo ha sido enviado correctamente a la dirección $email"; }
Tengo un servidor de correo instalado, y con la función mail me los envía sin problemas, pero con la clase mailer me sale error, relacionado con la clave de usuario, auqnue esta está bien. Alguna sugerencia?? Mil gracias por anticipado.