Tema: sendmsg()
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/08/2006, 12:07
Avatar de rugia
rugia
 
Fecha de Ingreso: agosto-2006
Mensajes: 18
Antigüedad: 17 años, 8 meses
Puntos: 0
Con phpmailer pude configurarlo para que enviara correos, pero no para el de adjuntar creo que se llama "ejemplo2" algo asi te pongo el codigo :

Código:
<?
      // primero hay que incluir la clase phpmailer para poder instanciar 
      //un objeto de la misma
      require "includes/class.phpmailer.php";

      //instanciamos un objeto de la clase phpmailer al que llamamos 
      //por ejemplo mail
      $mail = new phpmailer();

      //Definimos las propiedades y llamamos a los métodos 
      //correspondientes del objeto mail

      //Con PluginDir le indicamos a la clase phpmailer donde se 
      //encuentra la clase smtp que como he comentado al principio de 
      //este ejemplo va a estar en el subdirectorio includes
      $mail->PluginDir = "includes/";

      //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 = "10.200.31.5";
      
      //Le indicamos que el servidor smtp requiere autenticación
      $mail->SMTPAuth = false;

      //Le decimos cual es nuestro nombre de usuario y password
      $mail->Username = "[email protected]";
      $mail->Password = "paso";
      
      //Indicamos cual es nuestra dirección de correo y el nombre que 
      //queremos que vea el usuario que lee nuestro correo
      $mail->From = "micuenta";

      $mail->FromName = "rafa";

      //Asignamos asunto y cuerpo del mensaje
      //El cuerpo del mensaje lo ponemos en formato html, haciendo 
      //que se vea en negrita
      $mail->Subject = "Prueba de phpmailer";
      $mail->Body = "<b>Mensaje de prueba mandado con phpmailer  en formato html</b>";

      //Definimos AltBody por si el destinatario del correo no admite 
      //email con formato html
      $mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto";

      //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
      //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120  
      $mail->Timeout=120;

      $mail->AddAddress("[email protected]");

      //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
      if ($achivo !="none") {
	$mail->AddAttachment($archivo,$archivo_name);
      }

      //Indicamos cuales son las direcciones de destino del correo y enviamos 
      //los mensajes
     /* reset($direcciones);
      while (list($clave, $valor)=each($direcciones)) {
	$mail->AddAddress($valor);
      */

	//se envia el mensaje, si no ha habido problemas la variable $success 
	//tendra el valor true
	$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;
        }
		
	if(!$exito)
	{
	   echo "Problemas enviando correo electrónico a ".$valor;
	   echo "<br>".$mail->ErrorInfo;	
	}
	else
	{
	   //Mostramos un mensaje indicando las direccion de 
	   //destino y fichero  adjunto enviado en el mensaje	
	   $mensaje="<p>Has enviado un mensaje a:<br>";
	   $mensaje.=$valor." ";
	   if ($archivo !="none") {
		$mensaje.="Con un fichero adjunto llamado ".$archivo_name;
	   }
	   $mensaje.="</p>";
     	   echo $mensaje;


	}
	// Borro las direcciones de destino establecidas anteriormente
    	$mail->ClearAddresses();
	
	}
	echo "<a href='$PHP_SELF'> VOLVER AL FORMULARIO</a>";
   }
   else {
   ?>

   <HTML>
   <BODY>
   <? If ($error) echo "<font color='red'>$error</font>";?>
   <FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="<?=$PHP_SELF?>">
   <p>&nbsp;</p>
   <TABLE BORDER=0 ALIGN="CENTER">
      <TD>Fichero adjunto:</TD>
      <input type="hidden" name="MAX_FILE_SIZE" value="307200">
      <TD><INPUT TYPE="file" NAME="archivo" SIZE="35"></TD>
    </TR>
    <TR>
      <TD COLSPAN="2" ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar" name="enviar"></TD>
    </TR>
    </TABLE>
   </FORM>
   </BODY>
   </HTML>
   <?
   }
?>
Aqui te daras cuenta de que tengo una direccion ip en el smtp es porque en mi laptop tengo un servidor de correos, y que no pide auntentificacion ..

Cluster en verdad te agradesco que te tomes la molestia y tu tiempo