Comunidad de diseño web y desarrollo en internet online

Una de mails

Citar            
MensajeEscrito el 03 Mar 2007 11:08 am
Hola amigos! Estoy intentado enviar un correo, pero con la clase mailer. Siguiendo un ejemplo que he visto por la red, he hecho esto:

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.

Por Prometeo2006

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Mar 2007 04:03 pm
Puede ser el protocolo de autenticación, además en la clase emailer o smtp, tiene una opción para habilitar el debug, actívala.

saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.