Foros del Web » Programando para Internet » PHP »

Enviar un mail de contenido dinámico -php + MySQL- mediante la función mail() de php

Estas en el tema de Enviar un mail de contenido dinámico -php + MySQL- mediante la función mail() de php en el foro de PHP en Foros del Web. Estoy intentando mandar un mail con contenido dinámico mediante php y me es totalmente imposible. El mail lo envío sin problemas si el contenido es ...
  #1 (permalink)  
Antiguo 21/03/2011, 11:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Enviar un mail de contenido dinámico -php + MySQL- mediante la función mail() de php

Estoy intentando mandar un mail con contenido dinámico mediante php y me es totalmente imposible. El mail lo envío sin problemas si el contenido es únicamente de código html.

He buscado pero apenas he encontrado un par de cosas y no me ayudan nada.

Acepto cualquier tipo de ayuda. Desde como hacerlo, orientación,manuales que no haya encontrado ... ¡Gracias!
  #2 (permalink)  
Antiguo 21/03/2011, 11:19
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

¿y que más quieres enviar si no es HTML o texto plano?, a lo sumo podrás adjuntar imágenes o archivos (preferiblemente usando clases como swiftmailer, phpmailer u otras),

pero ¿a que te refieres con contenido dinámico?: los lectores de correo usualmente no soportan javascript, ni permiten ejecutar otros añadidos como plugins de vídeo o flash
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 21/03/2011, 11:40
 
Fecha de Ingreso: octubre-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Pues digamos que le quiero mostrar al usuario que recibe el mail el contenido de ciertos campos de una base de datos.

Supongamos que el usuario solicita un presupuesto para una reforma en su casa. Manda unos datos por un formulario. Las empresas de reformas reciben los datos y contestan. Todo esto se graba en la base de datos. Posteriormente se le manda al usuario un email con todos los presupuestos. El email que recibe tiene que mostrarle los precios de los presupuestos leyéndolos de la base de datos.

No se si me he explicado con claridad.
  #4 (permalink)  
Antiguo 21/03/2011, 12:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Pues es un proceso simple, por ejemplo:
Código PHP:
Ver original
  1. <?php
  2. // Conectas a la bdd
  3.  
  4. // Construyes el mail
  5. $mail = '';
  6. $query = "SELECT * FROM presupuestos";
  7. while($row = get_data($query)) {
  8.      $mail .= $row['presupuesto'];
  9. }
  10.  
  11. // envias el mail
  12. sendmail($mail);

Es un ejemplo de como hacerlo, la idea es construir bien tu correo antes de enviarlo.

Saludos.
  #5 (permalink)  
Antiguo 21/03/2011, 12:18
 
Fecha de Ingreso: octubre-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Cita:
Iniciado por GatorV Ver Mensaje
Pues es un proceso simple, por ejemplo:
Código PHP:
Ver original
  1. <?php
  2. // Conectas a la bdd
  3.  
  4. // Construyes el mail
  5. $mail = '';
  6. $query = "SELECT * FROM presupuestos";
  7. while($row = get_data($query)) {
  8.      $mail .= $row['presupuesto'];
  9. }
  10.  
  11. // envias el mail
  12. sendmail($mail);

Es un ejemplo de como hacerlo, la idea es construir bien tu correo antes de enviarlo.

Saludos.
Yo tengo todo programado y todo funciona bien. Es decir, yo creo una página que muestra los resultados tal y como quiero que los vea el usuario. Lo que no consigo es enviar la página con contenido php en forma de email.

Ejemplo:


Código PHP:
<?php

$email 
"[email protected]";
$asunto "Respuesta - Solicitud de Presupuestos";
$contenedor_mensaje1 '<html>
<head>
<title>Titulo de la Pagina</title>
</head>
<body>

//Si lo que meto aquí es html solo, funciona perfecto, 
//pero lo que quiero es meter el código completo de 
//la página que he creado que tiene php

</body>
</html>'
;

//este código envía el correo
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: [email protected]\r\n";


    
mail($email$asunto$contenedor_mensaje1$headers);   


?>


Gracias por las ayudas. :D

Última edición por dvd_valdi; 21/03/2011 a las 12:25
  #6 (permalink)  
Antiguo 21/03/2011, 13:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Sigue la estructura que te deje no deberías de tener ningún problema:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $email = "[email protected]";
  4. $asunto = "Respuesta - Solicitud de Presupuestos";
  5. $contenedor_mensaje1 = '<html>
  6. <head>
  7. <title>Titulo de la Pagina</title>
  8. </head>
  9. <body>';
  10.  
  11. while ($data = fetch()) {
  12.           $contenedor_mensaje1 .= "con etiquetas html <strong>" . $data . "</strong><br />";
  13. }
  14.  
  15. $contenedor_mensaje1 .= '</body>
  16. </html>';
  17.  
  18. //este código envía el correo
  19. $headers = "MIME-Version: 1.0\r\n";
  20. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  21. $headers .= "From: [email protected]\r\n";
  22.  
  23.  
  24.     mail($email, $asunto, $contenedor_mensaje1, $headers);  
  25.  
  26.  
  27. ?>

Saludos.
  #7 (permalink)  
Antiguo 21/03/2011, 14:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Cita:
Iniciado por GatorV Ver Mensaje
Sigue la estructura que te deje no deberías de tener ningún problema:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $email = "[email protected]";
  4. $asunto = "Respuesta - Solicitud de Presupuestos";
  5. $contenedor_mensaje1 = '<html>
  6. <head>
  7. <title>Titulo de la Pagina</title>
  8. </head>
  9. <body>';
  10.  
  11. while ($data = fetch()) {
  12.           $contenedor_mensaje1 .= "con etiquetas html <strong>" . $data . "</strong><br />";
  13. }
  14.  
  15. $contenedor_mensaje1 .= '</body>
  16. </html>';
  17.  
  18. //este código envía el correo
  19. $headers = "MIME-Version: 1.0\r\n";
  20. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  21. $headers .= "From: [email protected]\r\n";
  22.  
  23.  
  24.     mail($email, $asunto, $contenedor_mensaje1, $headers);  
  25.  
  26.  
  27. ?>

Saludos.
Muchas gracias. Me va genial con un ejemplo que he probado. Tenía problemas con las concatenaciones. Ahora tengo que ir poco a poco porque es un buen tocho de código el que tengo.

Gracias de nuevo. :D :D :D
  #8 (permalink)  
Antiguo 18/03/2015, 06:13
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 1 mes
Puntos: 1
Respuesta: Enviar un mail de contenido dinámico -php + MySQL- mediante la función mai

Hola:
He hecho una prueba para ver como funciona esta manera de envio y me da este error en la linea $headers = "MIME-Version: 1.0\r\n";

Parse error: syntax error, unexpected T_STRING in /home/s03196b2/public_html/prueba/prueba.php on line 42

gracias

Etiquetas: contenido, mail, mediante, mysql
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 13:00.