Error enviando mail

edited julio 2010 in Principiantes
Tengo una accion en el controlador que envia un mail cuando una sociedad se ha registrado correctamente, y cuando la ejecuto me muestra el siguiente error:
Fatal error: Cannot redeclare class SMTP in /home/www/aplicacion/lib/mail/smtp.php on line 24

El código que envia el mail es este:

Kumbia::import('lib.mail.*');
$mail = new PHPMailer();
$mail->From="micorreo@correo.com";
$mail->FromName="Mail de sistema";
$mail->Mailer="smtp";
$mail->Host='mail.correo.com';
$mail->SMTPAuth=true;
$mail->Username="micorreo@correo.com";
$mail->Password="123456";
$mail->Timeout=30;
$mail->Subject="Registro de nueva sociedad";
$body = "Ha sido registrada la sociedad ".$nombre;
$mail->Body=$body;
$mail->Send();

Alguna idea del motivo de dicho error?

Comentarios

  • Saludos, hace un tiempo públique un how to donde explico como utilizar estas librerias desde kumbia aqui [1] te dejo el enlace y pruebes....

    [1]->http://deivinsontejeda.wordpress.com/2007/06/04/como-utilizar-phpmailer-desde-kumbia/
  • edited 1:35
    Gracias Deivinson, el codigo lo hice siguiendo las instrucciones del how to que me indicas, pero produce el error que te menciono.
  • edited 1:35
    Yo me ayude para hacerlo del ejemplo que te han dicho y mirando en la api de phpmail.
    //Datos recogidos por el formulario
    		$this->mensaje[1] = $this->post('usuario');
    		$this->mensaje[2] = $this->post('mensaje');
    		$this->mensaje[3] = $this->post('tema');
    		$this->mensaje[4] = $this->post('remitente');
    		$this->mensaje[5] = $this->post('destinatario');
    		//Datos de configuración para el envio del correo.
    		$mail = new PHPMailer();
    		$mail->FromName = $this->mensaje[1];
    		$mail->From = $this->mensaje[4];
    		$mail->AddAddress =$this->mensaje[5];
    		$mail->Subject=$this->mensaje[3];
    		$mail->Body = $this->mensaje[2];
    		$mail->IsHTML(true);
    		$mail->IsSMTP();
    		$mail->Host='localhost';
    		$mail->Port=25;
    		$mail->Send();
    
    Espero que te sirva.
    NaClU2.
  • edited 1:35
    He seguido todos los pasos de la how to pero me sigue saliendo el siguiente error:
    Fatal error: Cannot redeclare class SMTP in /home/www/aplicacion/lib/mail/smtp.php on line 24
    
  • edited 1:35
    Hola, ese error aparece siempre que declaras 2 o más veces una clase o función.

    Revisa tu código, porque debes estar incluyendo 2 veces la librería SMTP (no conozco mucho esa parte Kumbia, pero quizás ese Kumbia::import('lib.mail.*'); debieras eliminarlo.


    Saludos.
  • edited 1:35
    He eliminado el Kumbia::import('lib.mail.*'); quedando el código así:
    $mail = new PHPMailer();
    $mail->From="micorreo@correo.com";
    $mail->FromName="Mail de sistema";
    $mail->Mailer="smtp";
    $mail->Host='mail.correo.com';
    $mail->SMTPAuth=true;
    $mail->Username="micorreo@correo.com";
    $mail->Password="123456";
    $mail->Timeout=30;
    $mail->Subject="Registro de nueva sociedad";
    $body = "Ha sido registrada la sociedad ".$nombre;
    $mail->Body=$body;
    $mail->Send();
    
    y el error que me presenta es que no encuentra la clase PHPMailer:

    Fatal error: Class 'PHPMailer' not found in /home/www/pruebas/controllers/web_controller.php on line 190
  • edited 1:35
    ?
  • edited 1:35
    Hola Cordal,

    Prueba con el siguiente codigo:

    Kumbia::import('lib.mail.main');
    $mail = new PHPMailer();
    $mail->From="micorreo@correo.com";
    $mail->FromName="Mail de sistema";
    $mail->Mailer="smtp";
    $mail->Host='mail.correo.com';
    $mail->SMTPAuth=true;
    $mail->Username="micorreo@correo.com";
    $mail->Password="123456";
    $mail->Timeout=30;
    $mail->Subject="Registro de nueva sociedad";
    $body = "Ha sido registrada la sociedad ".$nombre;
    $mail->Body=$body;
    $mail->Send();

    Pero verifica que el Host sea un servidor de correo real, y que los datos para la autenticación "Username" y "Password" sean requeridos por el.

    Saludos.
  • edited 1:35
    Ok, gracias pruebo el codigo y te comento.
  • edited 1:35
    Gracias luchrv añadí el:
    Kumbia::import('lib.mail.main');
    
    y problema solucionado
  • edited 1:35
    Parece que en la version 1 de spirit no hace falta escribir
    Kumbia::import('lib.mail.main');
    
    En vez de eso, abrir el app/config/boot.ini
    y añadir phpmailer en la variable libs.

    Luego en el controlador, simplemente usar
    $mail = new PHPMailer();
    
    para crear una nueva instancia del objeto.

    Saludos desde Argentina <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
  • Si miras en la wiki de Spirit se explica eso de forma clara...

    <!-- m --><a class="postlink" href="http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versión_1.0_Spirit#Carga_Selectiva.2C_Inyecci.C3.B3n_de_Dependencias_y_el_Componente_Load&quot;&gt;http://wiki.kumbiaphp.com/KumbiaPHP_Fra ... nente_Load</a><!-- m -->
Sign In or Register to comment.