No te esta mostrando el error porque falta incluir la clase class.smtp.php quice hacer una prueba y me paso lo mismo, cuando mire el codigo de phpmailer vi esto
Código php:
Ver originalpublic function SmtpConnect() {
if($this->smtp == NULL) {
$this->smtp = new SMTP();
}
hola si vas a usar phpmailer para utilizar el smtp de gmail tenes que modificar la clase fijate en este link
http://www.buayacorp.com/archivos/phpmailer-con-gmail/ Cita: Bueno .. como bien dicen Gmail usa SSL como "capa de encriptación" .. pero también usa "TLS" para la autentificación.
En resumen .. si se usa PHP Mailer .. habría que hacer algunos cambios en su código para que use SSL y autentifique por TLS.
Se requiere de la extensión OpenSSL instalada para que todo esto funcine en sus servidores (revisarlo haciendo un phpinfo() o instalandola si es necesario y posible).
http://www.forosdelweb.com/1570457-post5.html Solucion a tu problema:
busca el metodo SmtpConnect() de la clase phpmailer en mi caso linea 581
cambia esto
Código PHP:
if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {
$host = $hostinfo[1];
$port = $hostinfo[2];
por esto
Código PHP:
if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $hostinfo)){
$host = $hostinfo[1];
$port = $hostinfo[3];
luego en el script que envia el mail
Código php:
Ver originalinclude 'class.smtp.php';
include 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->FromName = "mi nombre";
$mail->Subject = "Test";
$mail->Body = "probando";
$mail->IsHTML(true);
$mail->IsSMTP();
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Password = "xxxx"; // SMTP password
if(!$mail->Send())
{
echo "Se ha producido un error al enviar el correo.";
echo "Mailer Error: " . $mail->ErrorInfo;
}else{
echo 'mail enviado correctamente';
}
Activar la extencion OpenSLL sino no funciona