Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/08/2010, 13:21
Cmmv_85
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ayuda urgente

Cita:
Iniciado por Nemutagk Ver Mensaje
El error que tienes es que no tienes instalado un servidor SMPT para enviar correos, esto es muy diferente entre windows y GNU/Linux

No te compliques instalando/configurando un servidor SMTP, utiliza [URL="http://phpmailer.worxware.com/"]PHPMailer [/URL] y configuralo para utilizar algún SMPT como [URL="http://phpmailer.worxware.com/index.php?pg=examplebgmail"]GMail[/URL] o cualquier otro

Nota: Veo que no validas quien esta enviando el correo, así que cualquier persona mal intencionada va a poder utilizar tu formulario para enviar spam, mas vale que protejas ese formulario con un captcha o algo por el estilo, si no, mas vas a tardar en implementarlo que te bloqueen tu dominio (o en este caso te bloqueen la conexión al SMTP por enviar SPAM)

OffTopic: jojojo el mensaje numero 666!!! >.< LOL
Gracias Nemutargk por tu respuesta, y tu aporte, verdad que con el PHPMailer se pueden lograr estas funciones. Pero tengo un pequeño inconveniente, y explico: Ya me baje el PHPMailer de su pagina oficial, e instale los archivos en la carpeta de htdocs (creo que hasta ahi voy bien) del servidor local. Bien, luego buscando info, acerca de esto... me tope con este articulo [URL="http://www.programacion.com/articulo/uso_de_la_clase_phpmailer_213"] Uso de la clase PHPMailer[/URL] Utilice el codigo de ejemplo proporcionado por la pagina, y cuando lo corri me genero este error:

Fatal error: Failed opening required 'includes/class.phpmailer.php' (include_path='.;c:\apache\php\pear') in c:\apache\htdocs\sucretel\usuarios\ejemplo.php on line 4

y he aqui el codigo:

Código PHP:
<?
  
// 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 "smtp.gmail.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 "*******************@gmail.com"
  
$mail->Password "**********";

  
//Indicamos cual es nuestra dirección de correo y el nombre que 
  //queremos que vea el usuario que lee nuestro correo
  
$mail->From "********************@gmail.com";
  
$mail->FromName "Claudio Martínez";

  
//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("*****************@gmail.com");

  
//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 solo texto";

  
//se envia el mensaje, si no ha habido problemas 
  //la variable $exito 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 segundos despues 
  //del anterior, para ello se usa la funcion sleep    
  
$intentos=1
  while ((!
$exito) && ($intentos 5)) {
    
sleep(5);
         
//echo $mail->ErrorInfo;
         
$exito $mail->Send();
         
$intentos=$intentos+1;    
    
   }
 
        
   if(!
$exito)
   {
    echo 
"Problemas enviando correo electrónico a ".$valor;
    echo 
"<br/>".$mail->ErrorInfo;    
   }
   else
   {
    echo 
"Mensaje enviado correctamente";
   } 
?>

Aparte, encontre distintos temas sobre enviar correos a GMAIL usando estos scripts, aun estoy documentandome sobre eso, pero quisiera que me aclararan la duda, del porque ese error, de si esta bien la "instalación" del PHPMailer, y si es necesario algun otro programa más.