Foros del Web » Programando para Internet » PHP »

Enviar correo con nombre

Estas en el tema de Enviar correo con nombre en el foro de PHP en Foros del Web. Hola, ¡Que tal? Tengo un formulario para enviar correo a una lista de una base de datos, pero quisiera que tomara los nombres del los ...
  #1 (permalink)  
Antiguo 13/01/2007, 17:34
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Enviar correo con nombre

Hola, ¡Que tal?

Tengo un formulario para enviar correo a una lista de una base de datos, pero quisiera que tomara los nombres del los suscriptores a la lista mas o menos de esta forma:

Hola Claudio González, ¡Que tal?

lo he puesto de varias formas y no resulta:
Hola $row[nombre], Que tal te envio este correo para informarte.......
Hola $_POST[nombre], Que tal te envio este correo para informarte.......
Hola [$nombre]. Que tal te envio este correo para informarte.......
todo esto en el campo textarea del formulario
cuando lo he puesto con entre comillas me salen los carateres de escape en el mensaje mas o menos asi \"

Si alguien me puede dar una idea de como hacerlo, estare eternamente agradecido
  #2 (permalink)  
Antiguo 13/01/2007, 17:53
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Enviar correo con nombre

Cita:
Iniciado por claudio_hbl Ver Mensaje
lo he puesto de varias formas y no resulta:
Hola $row[nombre], Que tal te envio este correo para informarte.......
Hola $_POST[nombre], Que tal te envio este correo para informarte.......
Hola [$nombre]. Que tal te envio este correo para informarte.......
Primero debes aclararte y pensar de dónde estás cogiendo el nombre de la persona.
  • Usarías $row si lo estuvieras cogiendo de una base de datos
  • Usarías $_POST[] si lo estuvieras cogiendo de un formulario
  • Usarías [$nombre]... bueno, no lo usarías, ese tipo de variables no existen

Según dices, lo quieres hacer desde una base de datos. Pues bien, primero tienes que conectar a ella, extraer los datos, y hacer que por cada uno de ellos envíe un e-mail con el nombre y dirección correspondientes.

Código PHP:
<?
//Conectas a la base de datos, lo pongo como un include, tu veras..
include ("conectar.php");

//Como se llama la tabla donde tienes a lo suscritos? Cambialo si no es asi.
$tabla "suscriptores";

//Redactas la consulta
$consulta "SELECT * from $tabla";

//Extraes los datos
while ($row mysql_fetch_array($consulta)) {

//Por cada uno de ellos envias un email
$para $row['email'];
$asunto "E-mail boletin";
$mensaje "Hola, $row['nombre'], como estas?";

mail ($para$asunto$mensaje);

//Dejas de extraer datos
}

Espero te sirva de ayuda, aunque tendrás que hacer varios cambios para adaptarlo a tus necesidades.

Suerte
  #3 (permalink)  
Antiguo 13/01/2007, 18:17
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Enviar correo con nombre

David, es correcto lo que tu dices y tengo todo lo que mencionas de la conexion, si yo hago un archivo con todos esos datos me funciona perfectamente, escribiendo el texto como una variable $message.

Lo que yo quiero es enviar el mensaje desde un formulario y el archivo que procesa hace lo que tu dices, para una mejor ilustración voy a transcribir el código que procesa el formulario, se entiende que el formulario tiene solo 2 campos, asunto y mensaje.

Código:
<?php
include('conexion.php');
$link = Conectarse();
$sql = " SELECT id,nombre,apellidos,email,estado FROM prospectos where estado='5'";
$result = mysql_query($sql);
$contador=0;
while($row = mysql_fetch_array($result))
{
$correo="[email protected]";
mail($row[email], $_POST[asunto], $_POST[mensaje], "From: $correo");
echo "<h5>","ID: ","$row[id] \n";
echo "<br></br>","Nombre: ","$row[nombre] \n";
echo "Apellidos: ","$row[apellidos]";
echo "<br></br>","E-Mail: ","$row[email]";
echo "<br></br>","Estado: ","$row[estado]";
echo "</h5><hr></hr>";
$contador++;
}
mysql_close();
?>
<h1><?echo $contador ?> Correos enviados con exito</h1>
este código funciona bien, cumple la función para lo que quiero.
en el formulario, en el textarea es donde tengo el problema, cuando escribo el mensaje, ahi es donde no sé como poner las variables para que tome los datos de los usuarios registrados en la base de datos.

Gracias por tu respuesta
  #4 (permalink)  
Antiguo 14/01/2007, 11:05
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 18 años, 9 meses
Puntos: 3
Re: Enviar correo con nombre

bueno en el codigo de arriba no veo ningun form.!

pero te explicare algunas cosas basicas.
un form esta compuesto de
<form name"nombre" action="archivo que procesara el script" method="metodo">
</form>

en donde action puede ser un archivo que reciba los datos o el mismo archivo puede procesarlos....
method es el metodo para enviar los datos hay dos, GET y POST el get envia la info por url es una cadena seguida de la extencion del archivo .php? y en forma de conjunto variable->valor...
http://www.forosdelweb.com/f18/enviar-correo-con-nombre-456328/
como eso...
el post no se ve,......

bueno cuando envias info de un form... al presionar submit.....
se crean los arrays correspondientes de acuerdo a si es por get o por post
tomando estos los valores de cada elemento del form... con su respectivo nombre
$_POST["nombre_del_elemento"]
por eso es importante ponerle siempre nombres alos elementos del form.. y que sea acorde.

tu textarea debe tener un nombre, entonces para procesar la info solo la recibes, yas ea por get o post y lo refrerencias por su nombre......
y ya lo demas.... saldra de tu imaginacion
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
  #5 (permalink)  
Antiguo 14/01/2007, 11:26
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Enviar correo con nombre

Código:
<div id="formu_alert">
        <fieldset>
            <form name="alerta" action='procesa_alerta.php' method="post">
                <legend>Enviar Correos</legend>
                <p>
                <label for="asunto">Asunto:</label> <input type=text name="asunto" class="campo_alert">
                <label for="mensaje">Mensaje:</label><br /><textarea name="mensaje"></textarea>
		<hr></hr>
                <input class="boton_link" type=submit value="Enviar Información">
		<hr></hr>
                </p>
            </form>
        </fieldset>
    </div>
Este es código del formulario, todo lo que tu me dices lo tengo bien claro, solo que quiero que al escribir en el textarea, pueda incluir la variable, nombre para que cada correo sea personalizado.
Tambien tengo claro que en archivo de procesar puedo escribir el mensaje y ahi no tengo inconveniente, yo que se de esto, pero como hago para que un cliente pueda modificar el mensaje del archivo de proceso y despues lo suba por ftp, no crees que eso no es conveniente, es por ello que crre el formulario para mi cliente le mande a sus clientes un mail personalizado pero basandose en la lista de clientes de su base de datos, de lo contrario pondr{ia orto campo para que ingrese el correo del cliente al cual quiere enviar un correo pero tendria que hacer esto cientos de veces. No sé si me entiendes o me esplicado mal.
  #6 (permalink)  
Antiguo 14/01/2007, 16:10
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Enviar correo con nombre

Problema solucionado.

Lo que hice fue, en el archivo de proceso crear una variable, que me tomara los nombres y apellidos de la base de datos y le agregue la variable del textarea con el mensaje, por tanto quedó mas facil para el usuario que no tiene que preocuparse de esos menesteres de poner las variables de alguna manera, solo tiene que preocuparse de escribir el texto del mensaje y nada mas, qued{o mejor de lo que queria.
Aqui va el codigo para que lo vean y pueda servir a otra persona en algún momento.
Código:
$mensaje_saludo="
Hola: $row[nombre] $row[apellidos] Que tal?
$_POST[mensaje]";
$correo="[email protected]";
mail($row[email], $_POST[asunto], $mensaje_saludo, "From: $correo");
  #7 (permalink)  
Antiguo 26/04/2007, 15:29
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Enviar correo con nombre

Hola! Yo tuve que recurrir a lo mismo (poner el saludo primero, y que mi cliente genere el mensaje sin variables, que se guarda en una db).
Lo que me gustaría, es que mi cliente pueda escribir la variable en el textarea, algo así como
<textarea><html>-aca iría el head, el body, lo de css, etc- Hola $nombre: tienes $puntos puntos acumulados en tu tarjeta. Ve a que te den por c*lo!!!</html></textarea>

Pero cuando el php lo interpreta, sí hace todo lo que sea html, pero la variable la deja como $variable..por eso, decía, recurrido a no dejarlo a mi cliente usar las variables, sino que eso queda fijo en el codigo php, y se le suma el mensaje que él ponga en el textarea.
¿Cómo le hago????
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 09:01.