Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: NIGHTBIRD en 25 Julio 2012, 20:44 PM

Título: No aparece enlace en email de confirmacion
Publicado por: NIGHTBIRD en 25 Julio 2012, 20:44 PM
Hola a tod@s. Estoy haciendo una web, y a la hora de registrarte, mando un email de confirmacion al usuario que se acaba de registrar para que confirme su registro.

Ese email lo mando usando Swift Mailer en PHP. Swift Mailer es una libreria PHP para enviar emails. El problema que tengo es que en el email, en vez de aparecer el enlace asi:


Para confirmarlo debe hacer click en el siguiente enlace:
CLICK AQUI PARA ACTIVAR CUENTA


aparece literalmente esto:


Para confirmarlo debe hacer click en el siguiente enlace:
<a href="http://localhost:8085/WEB_PROPIA/confirmar.php?codigo=508033209\>CLICK AQUI PARA ACTIVAR CUENTA</a>




En el codigo php tengo esto:



$mensaje = "Usted solicito un registro en http://www.webreal.com, \n
Para confirmarlo debe hacer click en el siguiente enlace: \n";


$enlaceactivacion="<a href=\"http://localhost:8085/WEB_PROPIA/confirmar.php?codigo=".$codigoverificacion."\>CLICK AQUI PARA ACTIVAR CUENTA</a>";

$mensaje=$mensaje.$enlaceactivacion;

require_once 'lib/swift_required.php';



$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465,'ssl')
    ->setUsername('emailreal@gmail.com')
    ->setPassword('contraseñareal');

//Creamos el mensaje a través del transporte creado
$mailer = Swift_Mailer::newInstance($transport);
//Creamos el mensaje
$message = Swift_Message::newInstance('Confirmación de Registro')
  ->setFrom(array('emailreal@gmail.com' => 'real'))
  ->setTo(array($email))
  ->setBody($mensaje);

//Finalmente enviamos el mensaje
$result = $mailer->send($message);



El email se envia correctamente, el problema solo es el que he comentado sobre el enlace que no aparece como quiero.

Gracias de antemano.

Un saludo.
Título: Re: No aparece enlace en email de confirmacion
Publicado por: karmany en 25 Julio 2012, 23:28 PM
Te has olvidado de las comillas al final de href.
Quítale también la barra inclinada (\) al final de <a>
Título: Re: No aparece enlace en email de confirmacion
Publicado por: it3r en 26 Julio 2012, 16:18 PM
lo mismo que te respondieron arriba, para no hacerte bolas prueba haciendo esto


echo '<a href="link" onclick="test()">CLICK</a>';


es decir poner primero comillas simples y en el codigo ya podras usar comillas dobles sin problemas, al contrario también sirve.

Saludos.
Título: Re: No aparece enlace en email de confirmacion
Publicado por: Pablo Videla en 26 Julio 2012, 16:37 PM
Primero verifica que acepte el envio de html, segundo arregla esto

Reemplaza tu variable $enlaceactivacion por lo que pondré

Código (php) [Seleccionar]

$enlaceactivacion="<a href='http://localhost:8085/WEB_PROPIA/confirmar.php?codigo='.$codigoverificacion.'>CLICK AQUI PARA ACTIVAR CUENTA</a>";

Título: Re: No aparece enlace en email de confirmacion
Publicado por: NIGHTBIRD en 30 Julio 2012, 21:02 PM
Cita de: karmany en 25 Julio 2012, 23:28 PM
Te has olvidado de las comillas al final de href.
Quítale también la barra inclinada (\) al final de <a>

Cita de: it3r en 26 Julio 2012, 16:18 PM
lo mismo que te respondieron arriba, para no hacerte bolas prueba haciendo esto


echo '<a href="link" onclick="test()">CLICK</a>';


es decir poner primero comillas simples y en el codigo ya podras usar comillas dobles sin problemas, al contrario también sirve.

Saludos.

Cita de: DonVidela en 26 Julio 2012, 16:37 PM
Primero verifica que acepte el envio de html, segundo arregla esto

Reemplaza tu variable $enlaceactivacion por lo que pondré

Código (php) [Seleccionar]

$enlaceactivacion="<a href='http://localhost:8085/WEB_PROPIA/confirmar.php?codigo='.$codigoverificacion.'>CLICK AQUI PARA ACTIVAR CUENTA</a>";



Gracias a los 3. Al final acabe poniendolo asi:



$enlaceactivacion='<a href="http://localhost:8085/WEB_PROPIA/confirmar.php?codigo='.$codigoverificacion.'">Click AQUI para activar la cuenta</a>'; 



Ademas de eso, me faltaba agregar el tipo de contenido en el método setBody:

->setBody($mensaje, 'text/html');


Hay un ejemplo en la documentación

http://swiftmailer.org/docs/messages.html#setting-the-body-content

Saludos!