Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] insertar un enlace dentro de variable $mensaje para enviar por email con php

Estas en el tema de insertar un enlace dentro de variable $mensaje para enviar por email con php en el foro de PHP en Foros del Web. Hola muy buen día Mi pregunta es sobre cómo puedo insertar un enlace en php. en el mensaje que se envía por mail a un ...
  #1 (permalink)  
Antiguo 19/10/2014, 12:00
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
insertar un enlace dentro de variable $mensaje para enviar por email con php

Hola muy buen día
Mi pregunta es sobre cómo puedo insertar un enlace en php. en el mensaje que se envía por mail a un usuario una vez que se registra a formulario.

Hasta ahora tengo que el usuario llena el formulario, entonces se ejecuta el php donde me envía un correo con los datos ingresados al formulario y envía también un correo de respuesta al usuario, dentro de este mensaje quisiera pues que le llegue un enlace desde donde pueda realizar una descarga.

$usermessage = "Gracias por su interés al registrarse. descargue -aquí- (vendría entonces enlace de descarga) su versión de prueba.

y tengo después el envío de la variable con el contenido:

mail($usermessage);

Ojalá alguien pueda ayudarme, he probado algunas cosas pero se queda en blanco el mensaje o simplemente no llega nada.

Saludos!
  #2 (permalink)  
Antiguo 19/10/2014, 12:10
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 2 meses
Puntos: 36
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

coloca codigo de envio y con gusto veo que puedo hacer para ayudarte
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..
  #3 (permalink)  
Antiguo 19/10/2014, 12:36
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Gracias por responder, este es mi código de envio:


<?PHP
$email = $_POST["emailaddress"];
$nombre = $_POST["nombre"];
$empresa = $_POST["empresa"];
$cargo = $_POST["cargo"];
$telefono = $_POST["telefono"];
$calle = $_POST["calle"];
$codigo = $_POST["codigo"];
$ciudad = $_POST["ciudad"];
$estado = $_POST["estado"];
$pais = $_POST["pais"];
$fax = $_POST["fax"];
$cantidad = $_POST["cantidad"];
$especificaciones = $_POST["especificaciones"];
$comentarios = $_POST["comentarios"];

$to = "[email protected]";
$subject = "New Email Address for Mailing List";
$headers = "From: $email\n";
$message = "Un visitante se ha registrado con los siguientes datos:" .
"\nNombre: " . $nombre .
"\nEmpresa: " . $empresa .
"\nCargo: " . $cargo .
"\nEmailAddress: " . $email .
"\nTelefono: " . $telefono .
"\nCalle y numero: " . $calle .
"\nCodigo Postal: " . $codigo .
"\nCiudad: " . $ciudad .
"\nEstado: " . $estado .
"\nPais: " . $pais .
"\nFax: " . $fax .
"\nCantidad: " . $cantidad .
"\nEspecificaciones: " . $especificaciones .
"\nComentarios: " . $comentarios;

$user = "$email";
$usersubject = "Thank You";
$userheaders = "From: [email protected]\n";

$usermessage = "Gracias por su interés al registrarse, descargue - aqui -
su versión de prueba. "
;

mail($to,$subject,$message,$headers);
mail($user,$usersubject,$usermessage,$userheaders) ;
?>


---
Dentro de la variable $usermessage es que quisiera insertar un enlace en "aqui" para iniciar una descarga.


Desde ya muchas muchas gracias por cualquier ayuda.

Última edición por sumde; 19/10/2014 a las 13:11
  #4 (permalink)  
Antiguo 19/10/2014, 14:58
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Por qué querés enviar el link poniéndolo dentro de la función mail? Simplemente incluilo en el cuerpo del mensaje.

Código PHP:
<?php
$usermessage 
"<a href='http://www.tudireccion.com'>aqui</a>";

$to "[email protected]";
$subject "New Email Address for Mailing List";
$headers "From: $email\n";
$message "Un visitante se ha registrado con los siguientes datos:" .
"\nNombre: " $nombre .
"\nEmpresa: " $empresa .
"\nCargo: " $cargo .
"\nEmailAddress: " $email .
"\nTelefono: " $telefono .
"\nCalle y numero: " $calle .
"\nCodigo Postal: " $codigo .
"\nCiudad: " $ciudad .
"\nEstado: " $estado .
"\nPais: " $pais .
"\nFax: " $fax .
"\nCantidad: " $cantidad .
"\nEspecificaciones: " $especificaciones .
"\nComentarios: " $comentarios.
"\nGracias por su interés al registrarse, descargue " $usermessage "
su versión de prueba. "
;

mail($to,$subject,$message,$headers);
?>
Y añade a los headers información un poco más detallada. Siempre es conveniente para que tu mail no sea filtrado como spam:

Código PHP:
<?php
    $headers  
'MIME-Version: 1.0' "\r\n";
    
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
    
$headers .= 'From: MyCompany <[email protected]>' "\r\n";  
?>
Probalo y me contás! Saludos :)
  #5 (permalink)  
Antiguo 19/10/2014, 15:15
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Hola de nuevo.
Después de muchos ejercicios, al final creo que fue algo simple, coloqué el mensaje dentro de etiquetas html, mi php quedó entonces así:


<?PHP

$nombre = $_POST["nombre"];
$empresa = $_POST["empresa"];
$cargo = $_POST["cargo"];
$email = $_POST["emailaddress"];
$telefono = $_POST["telefono"];
$calle = $_POST["calle"];
$codigo = $_POST["codigo"];
$ciudad = $_POST["ciudad"];
$estado = $_POST["estado"];
$pais = $_POST["pais"];
$fax = $_POST["fax"];
$cantidad = $_POST["cantidad"];
$medio = $_POST["medio"];
$mensaje = $_POST["mensaje"];
$comentarios = $_POST["comentarios"];
$informacion = $_POST["informacion"];


$to = "[email protected]";
$subject = "New Email Address for Mailing List";
$headers = "From: $email\n";
$message = "Un visitante se ha registrado con los siguientes datos:" .
"\nNombre: " . $nombre .
"\nEmpresa: " . $empresa .
"\nCargo: " . $cargo .
"\nEmailAddress: " . $email .
"\nTelefono: " . $telefono .
"\nCalle y numero: " . $calle .
"\nCodigo Postal: " . $codigo .
"\nCiudad: " . $ciudad .
"\nEstado: " . $estado .
"\nPais: " . $pais .
"\nFax: " . $fax .
"\nCantidad: " . $cantidad .
"\nMedio: " . $medio .
"\nMensaje: " . $mensaje .
"\nComentarios: " . $comentarios .
"\nRecibir Informacion: " . $informacion;

$user = "$email";
$usersubject = "Thank You";
$userheaders = "From: [email protected]\n";
$userheaders = 'MIME-Version: 1.0' . "\r\n";
$userheaders .= 'Content-type: text/html; charset=utf-8' . "\r\n";


$usermessage = '
<html>
<head>
<title>Registro</title>
</head>
<body>
<p>Gracias por su interés.
</p>
<p>Para descargar la versión de prueba por favor haga clic <a href="http://coloqueurl">aquí.</a>
</p>

</body>
</html>
';



Cuando envio un correo a gmail, llega perfectamente bien, el problema es en Outlook donde llega texto plano mostrando las etiquetas, entonces cómo se puede solucionar este problema?




Agradezco cualquier dato. Saludos.
  #6 (permalink)  
Antiguo 19/10/2014, 15:32
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Cita:
Iniciado por GeekGirl Ver Mensaje
Por qué querés enviar el link poniéndolo dentro de la función mail? Simplemente incluilo en el cuerpo del mensaje.

Código PHP:
<?php
$usermessage 
"<a href='http://www.tudireccion.com'>aqui</a>";

$to "[email protected]";
$subject "New Email Address for Mailing List";
$headers "From: $email\n";
$message "Un visitante se ha registrado con los siguientes datos:" .
"\nNombre: " $nombre .
"\nEmpresa: " $empresa .
"\nCargo: " $cargo .
"\nEmailAddress: " $email .
"\nTelefono: " $telefono .
"\nCalle y numero: " $calle .
"\nCodigo Postal: " $codigo .
"\nCiudad: " $ciudad .
"\nEstado: " $estado .
"\nPais: " $pais .
"\nFax: " $fax .
"\nCantidad: " $cantidad .
"\nEspecificaciones: " $especificaciones .
"\nComentarios: " $comentarios.
"\nGracias por su interés al registrarse, descargue " $usermessage "
su versión de prueba. "
;

mail($to,$subject,$message,$headers);
?>
Y añade a los headers información un poco más detallada. Siempre es conveniente para que tu mail no sea filtrado como spam:

Código PHP:
<?php
    $headers  
'MIME-Version: 1.0' "\r\n";
    
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
    
$headers .= 'From: MyCompany <[email protected]>' "\r\n";  
?>
Probalo y me contás! Saludos :)


Mira que probé eso de asignarlo como variable y me salió mal, ahora veo que lo estaba aplicando mal. Terminé por hacer un html en el mensaje. Lo cual como comentaba parece ir bien, la cosa se complica cuando lo mando a outlook nada, que llega como texto plano con las etiquetas html y todo ahi mostrandose.
Me voy a regresar a la forma que me dices, a ver que tal va y regreso con el resultado.

Gracias por el dato!!!
  #7 (permalink)  
Antiguo 19/10/2014, 15:32
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Revisa tu código ya que estás definiendo los headers dos veces y en la segunda, has cometido un error de sintaxis.

Cita:
Iniciado por sumde Ver Mensaje
Código PHP:
$headers "From: $email\n";

$userheaders "From: [email protected]\n";
$userheaders  'MIME-Version: 1.0' "\r\n";
$userheaders .= 'Content-type: text/html; charset=utf-8' "\r\n"

Debería ser

Código PHP:
<?php
$userheaders 
"From: [email protected]\n";
$userheaders .= 'MIME-Version: 1.0' "\r\n";
$userheaders .= 'Content-type: text/html; charset=utf-8' "\r\n";
?>
En cuanto al resto del código, estas creando también dos cuerpos del mensaje. Por un lado tenés la variable $mensaje y por otro la variable $usermessage.

Lo del texto plano seguramente sea por el error de sintaxis en las cabeceras.
  #8 (permalink)  
Antiguo 19/10/2014, 16:12
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Gracias GeekGirl, ya veo lo del error de sintaxis, sobre las cabeceras y el mensaje, en efecto tengo dos cuerpos de mensaje, lo que pasa es que intento enviar primero el correo con los datos recogidos del formulario y una vez hecho esto, enviar un mensaje de respuesta con el link de descarga, entonces definí headers y mensaje para ambos

De esta forma en:

mail($to,$subject,$message,$headers); (requiero message y headers para el correo que me llegará con los datos del usuario)

mail($user,$usersubject,$usermessage,$userheaders) ; (y requiero usermessage y userheaders para el correo que llegará al usuario registrado)

Es un error plantearlo de esa forma?
  #9 (permalink)  
Antiguo 19/10/2014, 16:19
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Ahhh no sabía que querías mandar dos mails diferentes. No bueno está bien entonces que definas para ambos. Igualmente te recomendaría verificar si llegó el primer mail antes de enviar el segundo.

Qué pasó al final con tu código? Se envían bien los mails ahora?
  #10 (permalink)  
Antiguo 19/10/2014, 16:29
 
Fecha de Ingreso: agosto-2014
Ubicación: Cd. de México
Mensajes: 22
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Sí sí, ya quedó. Ciertamente era aquello de la sintaxis, recién lo probé en gmail y en outlook y ya esta como necesitaba. Muchas muchas gracias que me ha servido mucho su ayuda. Por cierto disculpen haya escrito donde no debía, ahora entiendo cómo es que funciona la verdad es que me perdía y no sabía donde quedaba el comentario ni nada, pero ya presto más atención, discúlpenme.

Nuevamente gracias!!!
  #11 (permalink)  
Antiguo 19/10/2014, 16:37
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: insertar un enlace dentro de variable $mensaje para enviar por email con p

Recuerda marcar el tema como solucionado!

Saludos :)

Etiquetas: email, enlace, formulario, mensaje, variable
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 04:54.