Foros del Web » Programando para Internet » PHP »

Envio de mail + datos + html

Estas en el tema de Envio de mail + datos + html en el foro de PHP en Foros del Web. Hola, espero que alguien lea mi mensaje y sepa como responderme, de antemano muchas gracias... bien, el problema es que aunque se enviar correo mediante ...
  #1 (permalink)  
Antiguo 10/07/2003, 12:11
Avatar de ashketchum  
Fecha de Ingreso: julio-2001
Ubicación: En algun lugar de un gran pais
Mensajes: 418
Antigüedad: 16 años, 5 meses
Puntos: 0
Exclamación Envio de mail + datos + html

Hola, espero que alguien lea mi mensaje y sepa como responderme, de antemano muchas gracias...

bien, el problema es que aunque se enviar correo mediante PHP ya sea texto o HTML no se como hacer que dentro del HTML se envien tambien datos, algo asi como lo que hace ASPeMail de Persists que mediante algo parecido a esto "&datoenhtml&" automaticamente convierte esa variable en el dato que tenga y cuando llega el correo en lugar de aparecer esa variable aparece el texto por el cual esta definido...

espero me entiendan y puedan ayudarme
__________________
saludos y suerte
ashketchum
Fomentando el concepto "Internet"
  #2 (permalink)  
Antiguo 10/07/2003, 12:27
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
En este moemnto te pongo para texto plano.

Código PHP:
            $to      $frm['email'];
            
$subject "Registro en "$CFG->shopname;
            
$header  "From: "$CFG->mail_info."\n";
            
$header .= "MIME-Version: 1.0\n";
            
$header .= "Content-Type: text/plain; charset=iso-8859-1\n";
            
            
$message  "Estimado ".$frm['name'].",\n";
            
$message .= "Gracias por registrase en nuestra web, sus datos estan seguros. \n\n";
            
$message .= "Estos son los datos que nos proporcionó. \n";
            
$message .= "--------------------------------------------------------------------\n";
            
$message .= "Título---------: " .$frm['title']."\n";
            
$message .= "Apellidos------: " .$frm['firstname']."\n";
            
$message .= "Nombres--------: " .$frm['name']."\n";
            
$message .= "Email----------: " .$frm['email']."\n";
            
$message .= "Dirección------: " .$frm['address']."\n";
            
$message .= "País-----------: " .$frm['country']."\n";
            
$message .= "Ciudad---------: " .$frm['city']."\n";
            
$message .= "Región---------: " .$frm['region']."\n";
            
$message .= "Cód. Postal----: " .$frm['postalcode']."\n";
            
$message .= "Teléfono-------: " .$frm['phone']."\n";    
            
$message .= "Fax------------: " .$frm['fax']."\n";
            
$message .= "Boletines------: " .$frm['bulletin']."\n";
            
$message .= "Fecha----------: " .$frm['timekey']."\n\n";
            
$message .= "Su Usuario y Password, no olvide estos datos para futuras visitas.\n";
            
$message .= "--------------------------------------------------------------------\n";
            
$message .= "Usuario--------: " .$frm['user']."\n";
            
$message .= "Password-------: " .$frm['password']."\n";                                      
            
$message .= "--------------------------------------------------------------------\n\n";
            
$message .= "Atentamente.\n\n";
            
$message .= $CFG->shopname."\n";


             
mail($to$subject$message$header); //-- envio de mensaje 
Saludos
  #3 (permalink)  
Antiguo 10/07/2003, 12:29
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 15 años, 8 meses
Puntos: 2
Un krnal de Keretaro

con respecto a tu pregunta,, puedes utilizar str_replace:

$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);

Esto reemplaza el < escrito manualmente x el < sin reproducir el codigo,, o biceversa puedes hacerlo si esto resulve tu pregunta ;)

Salu2
__________________
http://www.chorcha.com
  #4 (permalink)  
Antiguo 10/07/2003, 15:53
 
Fecha de Ingreso: diciembre-2002
Mensajes: 220
Antigüedad: 15 años
Puntos: 0
Aquí te pego un ejemplo de envio de email con html... SUERTE!
Código PHP:
<html> 
<head> 
   <title>Ejemplo de envio de email</title> 
</head> 
<body>
<?
mail
($direccion,"Envio de email html","<html><head><title>Aquí tu título ashketchum</title></head><body>Ejemplo de envio de email de HTML<br><br>Nombre de tu sitio.<br>[url]http://www.tusitio.com/[/url]<br> <b>EJEMPLO HTML</b> </body></html>","Content-type: text/html\n""FROM: El email a donde va <[email protected]>\n"); 
   }       
echo 
"Se ha enviado correctamente el email a la direccion: ",$direccion,"</b>."

?> 
<br> 
</FORM> 
</body> 
</html>
Creo que esto te puede servir de algo... cuentanos que te parece...
Un Saludo
  #5 (permalink)  
Antiguo 10/07/2003, 16:17
Avatar de ashketchum  
Fecha de Ingreso: julio-2001
Ubicación: En algun lugar de un gran pais
Mensajes: 418
Antigüedad: 16 años, 5 meses
Puntos: 0
Pues creo que no me entendiste bien, lo que yo quiero es que los datos vayan dentro del cuerpo del e-mail HTML no dentro de la página de confirmacion...

saludos
__________________
saludos y suerte
ashketchum
Fomentando el concepto "Internet"
  #6 (permalink)  
Antiguo 10/07/2003, 16:35
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 15 años, 11 meses
Puntos: 0
Hola, no esperes que todo te lo den, con lo que se te ha sugerido, comienza por armar ya tu correo.

La mejor manera de aprender es intentar hasta lograrlo.

Saludos.
  #7 (permalink)  
Antiguo 10/07/2003, 18:12
 
Fecha de Ingreso: diciembre-2002
Mensajes: 220
Antigüedad: 15 años
Puntos: 0
Tienes razon...
Pero si aun tienes dudas pregunta!
Saludos
__________________
Muchas gracias por haberte "molestado" en leerme...
  #8 (permalink)  
Antiguo 11/07/2003, 08:56
Avatar de ashketchum  
Fecha de Ingreso: julio-2001
Ubicación: En algun lugar de un gran pais
Mensajes: 418
Antigüedad: 16 años, 5 meses
Puntos: 0
Ok, ok, no se molesten lo que pasa es que ya tengo armado el correo solo me falta eso, ya hize lo que me pasaron y nada, por eso pregunto... ademas solo estoy diciendo que si se puede, pues de PHP me considero novato, eso si de ASP puedo aclararles muchas dudas...

saludos
__________________
saludos y suerte
ashketchum
Fomentando el concepto "Internet"
  #9 (permalink)  
Antiguo 11/07/2003, 09:31
 
Fecha de Ingreso: diciembre-2002
Mensajes: 220
Antigüedad: 15 años
Puntos: 0
Si quieres.... intenta explicar un poco más clarito que es lo que quieres hacer exactamente... y a lo mejor podemos ayudar entre todos... aunque yo no se si sabré solucionarlo... me considero flojito en este tema...
Un Saludo
__________________
Muchas gracias por haberte "molestado" en leerme...
  #10 (permalink)  
Antiguo 11/07/2003, 09:36
Avatar de ashketchum  
Fecha de Ingreso: julio-2001
Ubicación: En algun lugar de un gran pais
Mensajes: 418
Antigüedad: 16 años, 5 meses
Puntos: 0
A ver... ¿alguno de ustedes ha trabajado con ASP alguna ves? lo que pasa es que con ASPeMail puedes mandar un correo personalizado o sea, puedes tomar el valor "NOMBRE" de una base de datos y mandarlo a alguna persona y en lugar de nombre lo que aparece dentro del HTML es el nombre de la persona, pense que PHP tambien se podria hacer esto, pero en realidad no lo se... espero que me entiendan...
__________________
saludos y suerte
ashketchum
Fomentando el concepto "Internet"
  #11 (permalink)  
Antiguo 11/07/2003, 22:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo eso que propones y "dices" que hace ASPnosequemail .. lo hago con un motor de templaltes (ejemplo: NokTemplates ;) ) .. Y una consulta a mi BD .. ahí mando mi e-mail en HTML (con las cabeceras correspondientes .. más info en mail() de www.php.net/manual/es ..)

Con el "motor" de templates consigo eso mismo .. Tener mi "HTML" aparte de mi código (con llamas a mis campos de mi BD que luego sustituiré típo: {NOMBRE} .. bla bla {APELLIDO} .... ) .. Y el "script" PHP sólo hace que ejecutar mi consulta:

Código PHP:
<?
// Instancio / Inicio el "motor" de tamplates que use ..

// hago el mysql_query() que corresponda (o a la BD que corresponda)
While($registro=mysql_fetch_array($consulta)){
   
// uso el método correspondiente del motor de Templates para asignar mi Campo de mi registro acutal .. al {NOMBRE} de mi "template".
   
$html->asignar($registro['nombre'],"NOMBRE");

// uso el método de la template que me permite obtener el "parseo" de la template en una variable .. La asigno a ejemplo: $body_html ...

// Envio el e-mail ..
mail(blablabla,$body_html);


// como veras, .. está todo el proceso en el "bucle" que uso para leer los registros de mi consulta realizad .. Así consigo un e-mail "personalizado" por cada registro de mi consulta (estilo "mailing carta" ..

?>

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 13/07/2003, 21:52
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Yo, la hago corta....

teng una variable $mensaje, a la cual le asigno el html ke kiero enviar.

$mensaje="<html><body>blablabla</body></html>";

si kiero agregarle una variable, pro ejemplo un campo extraido de una bd...

$nombre=$registro["nombre"]; ´# ésto sale de una consulta previa por supuesto..

$mensaje="<html><body>Gracias $nombre por escribir.</body></html>";

El html lo creo previamente y elimino todas las comillas dobles ("), entonces lo paso a la variable $mensaje como una cadena de texto.

Simple, corto y efectivo.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #13 (permalink)  
Antiguo 14/07/2003, 21:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
El html lo creo previamente y elimino todas las comillas dobles ("),
Así no estás respetando para nada los standares de la W3 ...Deberías "escapar" tus comillas dobles en lugar de Quitarlas!!

Escapar me refiero a:

<img src="algo.tal">

escapado sería:

<img src=\"algo.ta\l">

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 15/07/2003, 08:32
Avatar de ashketchum  
Fecha de Ingreso: julio-2001
Ubicación: En algun lugar de un gran pais
Mensajes: 418
Antigüedad: 16 años, 5 meses
Puntos: 0
Pues sea lo que sea funciono como lo comenta execon...
Muchas gracias chaval

saludos desde México
__________________
saludos y suerte
ashketchum
Fomentando el concepto "Internet"
  #15 (permalink)  
Antiguo 15/07/2003, 15:30
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 15 años, 10 meses
Puntos: 0
Cuando tienes ke hacer al menos 10 mails para enviar por día, te aseguro ke te vas por el método más fácil y el ke te haya dado mejores resultados, además que cuando un cliente no logre ver el mail ke le envías, debes dejarle una via de visualización y para eso está el web. Este es mi caso, es le método ke mejores resultados me ha dado y si se produce añgún tipo de error en el mail, vendría siendo por causa mía al diseñar o traspasar los datos antes de enviar.

En todo caso, siempre estoy buscando mejores alternativas de modo ke tenga ke hacer el menor trabajo posible.

AH ! y lo he probado en los webmail más pouplares (hotmail, mixmail, yahoo, starmedia) y en los clientes pop3 disponibles tb. (outlook, eudora y otros) en navegadores importantes (explorer, netscape, opera) en linux y macintosh y nada más
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------

Última edición por execon; 15/07/2003 a las 15:33
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 22:00.