Foros del Web » Programando para Internet » PHP »

PHP OO Problemas con métodos del PHPMailer

Estas en el tema de Problemas con métodos del PHPMailer en el foro de PHP en Foros del Web. Hola, siempre he enviado emails a través de php con la función mail(). El caso es que ahora estoy intentando usar PHPMailer y me da ...
  #1 (permalink)  
Antiguo 09/10/2014, 15:27
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Problemas con métodos del PHPMailer

Hola, siempre he enviado emails a través de php con la función mail(). El caso es que ahora estoy intentando usar PHPMailer y me da un error horrible!!

Tengo lo siguiente

Código PHP:
require_once('util/class.phpmailer.php');

class 
Usuario{
//inicio del método
//$insert_usu hace una inserción de los valores del formulario en al base de datos.
if ($insert_usu){
            echo 
"OK insert usu";        
            
//si se ha insertado enviamos el email.        

            
$mail = new PHPMailer();
        
            
//cuerpo del mensaje definido en html y lo inserto
            
$mensaje '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>REGISTRO USUARIOS</title>
</head>

<body>
esto es una prueba del registro de usuarios si se envia el email.
</body>
</html>'
;
            
            
$mail*->MsgHTML($mensaje);
            
            
//defino el email y nombre del remitente del mensaje
            
$mail*->SetFrom('[email protected]''Nombre completo');
            
//Defino la dirección de correo a la que se envía el mensaje
            
$mail-*>AddAddress($email$nombre);
            
//Añado un asunto al mensaje
            
$mail->Subject "Bienvenido a WebRutas";
            
//Puedo definir un cuerpo alternativo del mensaje, que contenga solo texto
            
$mail->AltBody "Tiene que confirmar su cuenta en Webrutas";            
            
//para mostrar correctamente acentos
            
$mail->CharSet "UTF*8";
            
$mail->Encoding "quoted*printable";

            
//envio el mensaje
            
if(!$mail-*>Send()) {
            echo 
"Error al enviar el mensaje: " $mail*>ErrorInfo;
            } else {
            echo 
"Mensaje enviado!!";
            }
            
        }else{
            
//falla la insercion en la base de datos.
            
error_log("Fallo en el registro de un nuevo usuario en la base de datos.");
            return 
false;
        }
        return 
true;
    } 
Me da el siguiente error:
Fatal error: Call to undefined function MsgHTML() in funciones\Usuario.php on line 63

Me pueden ayudar a saber porqué?
  #2 (permalink)  
Antiguo 09/10/2014, 15:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con métodos del PHPMailer

No sé que tanto sepas de lo que haces, ¿pero no te das cuenta de la falla?

Es decir, para acceder a propiedades/métodos de un objeto debes usar el operador ->, pero por alguna razón tienes -*> lo cual efectivamente no es lo que debería.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/10/2014, 15:40
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: Problemas con métodos del PHPMailer

Cita:
Iniciado por pateketrueke Ver Mensaje
No sé que tanto sepas de lo que haces, ¿pero no te das cuenta de la falla?

Es decir, para acceder a propiedades/métodos de un objeto debes usar el operador ->, pero por alguna razón tienes -*> lo cual efectivamente no es lo que debería.
Eso ha salido porque cuando lo he copiado en el blocquote había desaparecido el '-' de '->' y al volverlo a rellenar han empezado a salir asteriscos que sinceramente ni me había dado cuenta que habían aparecido, pero en el código no están...

(que soy mala programando, pero no para tanto)
  #4 (permalink)  
Antiguo 09/10/2014, 15:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con métodos del PHPMailer

Pues entonces muestra el código real y sin errores de sintaxis, de otra forma no podemos adivinar.

Es decir, analiza bien el mensaje de error:
Cita:
Fatal error: Call to undefined function MsgHTML() in funciones\Usuario.php on line 63
Si estuvieras invocando un método de la clase de PHPMailer te saldría algo así:
Cita:
Fatal error: Call to undefined method PHPMailer::MsgHTML() in funciones\Usuario.php on line 63
¿Entiendes la diferencia entre un método y una función?

Pues el error que recibes te indica que estás tratando de invocar dicho método como una función, y efectivamente por ende el error.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/10/2014, 23:56
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: Problemas con métodos del PHPMailer

He solucionado el problema utilizando el atributo Body en vez de del MsgHTML.

Código PHP:
$mail->Body $mensaje 
Gracias por tu ayuda

Etiquetas: formulario, html, phpmailer, registro, usuarios
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 03:00.