Foros del Web » Programando para Internet » PHP »

Ayuda con clase phpmailer

Estas en el tema de Ayuda con clase phpmailer en el foro de PHP en Foros del Web. Hola, estoy usando la clase phpmailer para enviar emails, la cual uso de la siguiente forma: en la carpeta de "includes" tengo un archivo configmail.php ...
  #1 (permalink)  
Antiguo 20/05/2008, 08:01
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Ayuda con clase phpmailer

Hola,

estoy usando la clase phpmailer para enviar emails, la cual uso de la siguiente forma:

en la carpeta de "includes" tengo un archivo configmail.php:

Código PHP:
<?

function confemail(){

  require 
"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 "XXX";

  
//Le indicamos que el servidor smtp requiere autenticación
  
$mail->SMTPAuth true;

  
//Le decimos cual es nuestro nombre de usuario y password
  
$mail->Username "xxx"
  
$mail->Password "xxx";

  
//Indicamos cual es nuestra dirección de correo y el nombre que 
  //queremos que vea el usuario que lee nuestro correo
  
$mail->From "xxx;
  $mail->FromName = "
xxx";

  //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=40;

  return $mail;
}?>
en esta carpeta tambien tengo las clases class.phpmailer.php y class.smtp.php

de esta manera si que he podido emails.

Ahora estoy intentado enviar emails desde un archivo que esta en (localhost/Admin/enviar.php)

y me salen estos errores:

Warning: smtp_send(includes/class.smtp.php): failed to open stream: No such file or directory in c:\appserv\www\admin\class.phpmailer.php on line 664

Warning: smtp_send(): Failed opening 'includes/class.smtp.php' for inclusion (include_path='.;c:\php4\pear') in c:\appserv\www\admin\class.phpmailer.php on line 664

Fatal error: Cannot instantiate non-existent class: smtp in c:\appserv\www\admin\class.phpmailer.php on line 666


entiendo el error pero no sé solucionarlo, sé que es de las rutas de los archivos pero no se sacarlo, a ver si vosotros me podeis echar una mano, muchas gracias
  #2 (permalink)  
Antiguo 20/05/2008, 08:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con clase phpmailer

Tu problema es que no puedes leer con los paths el archivo, verifica tu variable de PluginDir, cámbialo al directorio real para que la clase pueda cargar el archivo.

Saludos.
  #3 (permalink)  
Antiguo 20/05/2008, 08:40
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con clase phpmailer

Gracias GatorV, he modificado la variable Plugin Dir por la ruta por esta:
$mail->PluginDir = "http://localhost/includes/";

y me da el siguiente error:

Fatal error: Cannot instantiate non-existent class: smtp in c:\appserv\www\admin\class.phpmailer.php on line 666

en el archivo desde el que quiero enviar un mail:

Código PHP:
...
include 
'../includes/configmail.php';
        
        
$mail=confemail();
        
$mail->AddAddress(...); 
  #4 (permalink)  
Antiguo 20/05/2008, 08:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con clase phpmailer

Hola Elisa85,

A mi conocimiento la clase PHPMailer lee el directorio usando el sistema local, no la dirección web por lo que no te servirá si usas http://local.. necesitas usar el path físico al archivo.

Saludos.
  #5 (permalink)  
Antiguo 20/05/2008, 11:36
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con clase phpmailer

y eso como se hace? no lo habia oido nunca, la verdad
gracias
  #6 (permalink)  
Antiguo 20/05/2008, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con clase phpmailer

simple...

$mail->PluginDir = "http://localhost/includes/"; ESTA MAL!!!
$mail->PluginDir = "includes/"; QUE BIEN ESTA!!!
  #7 (permalink)  
Antiguo 20/05/2008, 11:56
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con clase phpmailer

asi es como lo tengo inicialmente (en el primer post) y no funciona :(
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:14.