Foros del Web » Programando para Internet » PHP »

variables en un mensaje via mail

Estas en el tema de variables en un mensaje via mail en el foro de PHP en Foros del Web. Hola a todos: estoy intentando enviar un mail de confirmacion, pero tengo el siguiente problema: el mensaje que envio quiero que sea un html pero ...
  #1 (permalink)  
Antiguo 13/05/2003, 03:11
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
variables en un mensaje via mail

Hola a todos:

estoy intentando enviar un mail de confirmacion, pero tengo el siguiente problema: el mensaje que envio quiero que sea un html pero dicho html debe contener ciertas variables que previamente se han informado. El mensaje se gestiona y se recibe, pero sin informacion de ningún tipo, teniendo en cuenta que dicha informacion son las variables que os comente.

Por si hay dudas, va fragmento de codigo:

<?
/* message */
$message = '
<shtml>
<body background="http://www.mipagina.com/graficos/fondos/fondo.jpg">

<table width="450">
<tr><td>
<table width="450">
<tr><td colspan="2">
<font style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color:#990000 ; "><?= $cabecera ?></font><hr>
</td></tr>
<tr>
<td colspan="2">
<BR><BR>
<p><b><?= $titulo ?></b></p>
</td>
</tr>
</td></tr>
</table>
</td></tr>
</table>
</body>
</shtml>
';
?>


....
....
....


$nombre = "Mi pagina"; //persona
$destinatario = $HTTP_POST_VARS["mail"]; //mail

$from = "[email protected]"; //cuenta destino

$header2 = "FROM: ".$nombre." <".$from.">"."\nReply-To:".$from."\n";
$header2 .= "X-Mailer:PHP/".phpversion()."\n";
$header2 .= "Mime-Version: 1.0\n";
$header2 .= "Content-Type: text/html";


$subject = "Confirmación de recepción de correo";

mail($destinatario, $subject, $message, $header2);
?>

Solo tengo el problema con las variables $cabecera y $titulo, pero estoy segura de que contienen informacion, porque visualizo en la web lo mismo que pretendo enviar.

Lo que quiero saber es si es posible enviar un html con variables.

Espero vuestra respuesta

Graciassss
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #2 (permalink)  
Antiguo 13/05/2003, 03:13
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Sí, es posible.

Si puedes mostrar las variables en la página, puedes enviarlas por mail. PHP generará el HTML que pretendes enviar del mismo modo que el HTML que pretendes mostrar. No hay ningún problema en mandar variables.

Eso sí, no debes abrir <? dentro de <? y ?>.

El código correcto sería este (mira la coloración del código):
Código PHP:
<?
/* message */
$message '
<shtml>
<body background="http://www.mipagina.com/graficos/fondos/fondo.jpg">

<table width="450">
<tr><td>
<table width="450">
<tr><td colspan="2">
<font style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color:#990000 ; ">$cabecera</font><hr>
</td></tr>
<tr>
<td colspan="2">
<BR><BR>
<p><b>$titulo</b></p>
</td>
</tr>
</td></tr>
</table>
</td></tr>
</table>
</body>
</shtml>
'
;
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 13/05/2003, 03:46
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
menuda tonteria... ni se me habia ocurrido

muchas gracias, lo probare

pues sera como dices, pero yo recibo un mail con un bonito $cabecera y otro bonito $titulo

__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #4 (permalink)  
Antiguo 13/05/2003, 04:06
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
jeje, es verdad, tiene lógica. No me acordaba que ' sirve para definir texto y " para definir texto interpretado

Usa esto:
Código PHP:
<?
/* message */
$message '
<shtml>
<body background="http://www.mipagina.com/graficos/fondos/fondo.jpg">

<table width="450">
<tr><td>
<table width="450">
<tr><td colspan="2">
<font style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color:#990000 ; ">'
.$cabecera.'</font><hr>
</td></tr>
<tr>
<td colspan="2">
<BR><BR>
<p><b>'
.$titulo.'</b></p>
</td>
</tr>
</td></tr>
</table>
</td></tr>
</table>
</body>
</shtml>
'
;
?>
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 13/05/2003, 04:11
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
define que quieres decir con texto interpretado, please, que no esta de mas que me entere de lo que hago y no hago

prefiero no suponer las cosas

gracias de nuevo
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 13/05/2003 a las 04:13
  #6 (permalink)  
Antiguo 13/05/2003, 04:13
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Código PHP:
<?
$nombre 
"Jaimito";

echo 
'hola $nombre';
# Produce: [b]hola $nombre[/b]
echo "hola $nombre";
# Produce: [b]hola Jaimito[/b]
?>
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 13/05/2003, 04:18
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
pues segun el ejmplo que me pones: '.$titulo.' debería mostrar .$titulo. y no su contenido
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #8 (permalink)  
Antiguo 13/05/2003, 04:30
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
No, porque estoy concatentando variables a un texto.

Si te fijas, tu defines el cuerpo del mail entre ' '. Para poner variables, debo concatenarlas con puntos.

Ejemplo extendido:
Código PHP:
<?
$nombre 
"Jaimito";

# variable en texto
echo 'hola $nombre';
# Produce: [b]hola $nombre[/b]
echo "hola $nombre";
# Produce: [b]hola Jaimito[/b]

# variable concatenada
echo 'hola '.$nombre.", ¿cómo estás?";
# Produce: [b]hola Jaimito, ¿cómo estás?[/b]
echo "hola ".$nombre.", ¿cómo estás?";
# Produce: [b]hola Jaimito, ¿cómo estás?[/b]

# Remix
echo '$nombre: '.$nombre;
# Produce: [b]$nombre: Jaimito[/b]
echo '$nombre: '."$nombre";
# Produce: [b]$nombre: Jaimito[/b]
echo "$nombre: ".$nombre;
# Produce: [b]Jaimito: Jaimito[/b]
echo "$nombre: ".'$nombre';
# Produce: [b]Jaimito: $nombre[/b]
#etc.
?>
__________________
M a l d i t o F r i k i
  #9 (permalink)  
Antiguo 13/05/2003, 05:00
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
ahora si...

gracias por la explicacion

__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #10 (permalink)  
Antiguo 13/05/2003, 05:08
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
De nada
__________________
M a l d i t o F r i k i
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:51.