Foros del Web » Programando para Internet » PHP »

problema con e-mail y html

Estas en el tema de problema con e-mail y html en el foro de PHP en Foros del Web. hola a todos. Recién estuve probando un código desde mi web que mandar un mail. El script funciona perfecto, pero a la hora de utilizar... ...
  #1 (permalink)  
Antiguo 09/12/2004, 19:53
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
problema con e-mail y html

hola a todos.
Recién estuve probando un código desde mi web que mandar un mail. El script funciona perfecto, pero a la hora de utilizar...

$cuerpo = '
<html>
<head>
<title>xxx</title>
</head>
'

...surge un error, ya que dentro del cuerpo del mensaje pongo variables en php como $nombre, y al recibir el mensaje me manda la palabra "$nombre" y no el valor de la variable,
¿como lo puedo solucionar?
  #2 (permalink)  
Antiguo 09/12/2004, 20:11
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
pues tiene que usar de esta forma:

$cuerpo = '
<html>
<head>
<title>xxx</title>
</head>
<body>
<font face="verdana" size="2">Hola este es un mensaje de '.$nombre.' para comunicarte un error en '.$error.'
<br>
<br>
La ip de '.$nombre.' es: <b>'.$ip.'</b>
</font>
</body>
</html>
';

Bueno... es un ejemplo.
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 09/12/2004, 20:12
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 13 años
Puntos: 43
si usas la comilla simple ' las variables no te las va a interpretar php, usa las comillas dobles para eso "$variable".



Suerte!
  #4 (permalink)  
Antiguo 09/12/2004, 22:02
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Exclamación Usa plantillas para el envío de mails

Utiliza una plantilla que contenga las variables, un archivo plantilla.php que contenga el html y las variables insertas.

Por ejemplo:

Código PHP:
<html>
<head>
<title>El titulo de tu mail tb puede ser una variable <?=Subject?> por ejemplo</title>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>

<body leftmargin=5 topmargin=0 marginwidth=50>
<table border=0 cellpadding=0 cellspacing=0>
  <tr> 
    <td><font color=#666666 size=1 face=Arial, Helvetica, sans-serif>** Si no 
      ves &eacute;ste mail haz click <a href=http://www.tuserver.com/tusmails/<?=$promocion?>.html>aqui</a></font></td>
    <td align="right" valign="middle"><font color="#666666" size="1" face="Arial, Helvetica, sans-serif"> 
      <?=$lafecha?>
      </font></td>
  </tr>
  <tr> 
    <td colspan="2" align=center valign=top><?=$lista?></td>
  </tr>
  <tr> 
    <td colspan="2" align=center></td>
  </tr>
  <tr>
    <td colspan="2" align=center><font color="#666666" size="1" face="Arial, Helvetica, sans-serif"><a href="http://www.mpg.dm.cl">box 
      2.0</a></font></td>
  </tr>
</table>
</body>
</html>
Explico:

hay una variable $subject que puede ser el titulo de tu mail, otra variable $promocion que corresponde al tipo de mail que envío (lunes=lunes.html, martes=martes.html) y que genera un archivo html con el contenido del mail que estoy enviando. Otra variable $lista que es el contenido de mi mail.

Como funciona ? con una función que lea una plantilla 'plantilla.php' que contiene el genérico del archivo, ésta función crea el mail y genera un archivo con código html y un $mensaje, que será enviado a los clientes o a las direcciones de mail que tu desees.

La función:

Esta función no recuerdo de donde la saqué pero está muy buena para lo que necesitaba.

Código PHP:
# Leer archivo de mail 
function mostrarTemplate($tema, $variables) 
{
   $cod = implode("", @file($tema));
   ob_start();
   extract($variables); 
   eval('?>'.$cod.'<?); 
   
$temp=ob_get_contents(); 
   
ob_end_clean(); 
   return 
$temp


# Leo la plantilla
$archivo "../mails/plantilla.php";

# genero el contenido de las variables
$variablesmensaje= array ("lafecha" => $lafecha,"promocion" => $promocion,
"lista" => $lista);

# creo el Mensaje para los mails
$Mensaje=mostrarTemplate($archivo$variablesmensaje);


### Escribir el archivo correspondiente al tipo de promoción

$archivo "../mails/".$promocion.".html";
$fp fopen($archivo"w+");
$contenido $Mensaje;
$write fputs($fp$contenido);
fclose($fp);
###
y eso es todo, espero que te ayude.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
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 18:08.