Ver Mensaje Individual
  #12 (permalink)  
Antiguo 24/02/2015, 01:43
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Error con PHPMailer

1) Imagino que usas un servidor local como WamServer bajo Ruindows, digo, windows.

2) debes habilitar en tu php.ini "php_openssl"

3) Descargar la clase "phpmailer" y solo coge para usar: class.phpmailer.php, class.smtp.php y el directorio completo de languages.

4) Crear un correo gmail, entrar en configuración, cuentas e importación, en el apartado cambiar la configuracion de la cuenta entra en otra configuracion de la cuenta de google, busca acceso de aplicaciones menos seguras y dale a permitir.

5) el archivo que envia el correo, yo lo llamo send_mail_google.php:

Código PHP:
<?php
// Adquirimos las variables de un formulario de contacto por ejemplo
$dia=date("d-m-Y"); //No es del formulario
$hora=date("H:i:s"); //No es del formulario
$nombre $_POST["nombre"];
$email $_POST["email"];
$asunto $_POST["asunto"];
$mensaje $_POST["mensaje"];
$body "
 El mensaje se a enviado el dia: <strong>$dia</strong> a las: <strong>$hora</strong> horas <br><br> 
---------------------------------------------------------------------------------------------------------<br><br>
 <strong>Nombre:</strong> $nombre <br><br>
 <strong>Email:</strong>  <a href='mailto:$email'>$email</a> <br><br>
 <strong>Asunto:</strong> $asunto <br><br>
 <strong>MENSAJE:</strong> <br><br>$mensaje <br><br>
 --------------------------------------------------------------------------------------------------------<br><br>
 "
;
/*--------------------------------------------------------------------------------------------*/
require_once('includes/PHPMailer/class.phpmailer.php'); //Patch a class.phpmailer.php
include('includes/PHPMailer/class.smtp.php'); //Patch a class.smtp.php
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From $email;
$mail->FromName $nombre;
$mail->addReplyTo($email$nombre);
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$password 'tucontraseña';
$port 587;
$secure 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->isSMTP();
$mail->Host $host;
$mail->SMTPAuth true;
$mail->Username $username;
$mail->Password $password;
$mail->Port $port;
$mail->SMTPSecure $secure;
/*------------------------------------------------------------------------------------------*/
$mail->addAddress('correo al que quieres enviar''Nombre del usuario que quieres enviar');
/*------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet 'utf-8';
$mail->setWordWrap 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject 'ENVÍO FORMULARIO DE CONTACTO';
$mail->Body $body;
//$mail->MsgHTML($body);
$mail->AltBody $body//Texto plano por si no acepta correo html
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
EL CORREO SE HA ENVIADO SIN ERRORES O LO QUE TU QUIERAS EN HTML
<?php
} else {
?>
EL COOREO NO SE HA PODIDO ENVIAR O LO QUE TU QUIERAS EN HTML
<?php
}
?>
Cual es el principal problema de esto de enviar correo con phpmailer a través de google gmail:
Pues el asunto estará bien, el nommbre del remitente estará bien, pero el remitente o el Raplyto será el de tu cuenta de gmail "[email protected]"

Me funciono 100% sin problemas

Normalmente se usa la función mail() de php para enviar los correos desde un Hosting con servidor de correos, en un servidor local cuando estás desarrollando la web debes probar que esta función envie los correos y no puedes pues en local no tienes servidor de correos.

Uso WampServer para desarrollar la web y ahora ya no uso phpmailer uso otro metodo para poder usar la funcion mail() de php en local con windows y Wampserver y es usando con wamp "Fake Sendmail "

Última edición por manyblue; 24/02/2015 a las 03:00