No tengo mucho que empece con el tema de la programación y pues apenas estoy aprendiendo. Y la verdad este foro ha sido de gran ayuda para ir mejorando.
Pero ahora me he atorado con un script para enviar correos personalizados.
Lo que quiero lograr es que por medio de un formulario se pueda enviar un correo a diferentes personas que tengo dadas de alta en una base de datos. Una vez que les envía el correo quiero que por medio de una etiqueta [[nombre]] escrito en el <textarea> que está dentro del <Form>, les muestre el nombre asociado al correo de la base de datos. Ejemplo: Hola [[nombre]] se trasforme en Hola Pedro, una vez enviado.
El código que tengo hasta el momento es el siguiente:
Este el formulario que recoge la información
Código HTML:
<form method=post name=f1> <table width="700" > <tr> <td>Nombre:</td> <td><input class="textbox" type=text name=name></td> </tr> <tr> <td>Email:</td> <td><input class="textbox" type=text name=email size=50></td> </tr> <tr> <td>Asunto:</td> <td><input class="textbox" type=text name=sub size=50></td> </tr> <tr><td></td></tr> <tr> <td>Mensaje:</td> <td><textarea class="textbox4" name=mensaje style="width:575px; height:300px"></textarea></td> </tr> <tr><td> </td></tr> <tr><td> </td> <td><input class='button' type=submit name=s1 value='Enviar'></td> </tr> </table> </form>
A continuación el código que se encarga de recogerla y enviarla a los diferentes destinatarios:
Código PHP:
<?php require_once("bd.php");
if(isset($_POST[s1]))
{
$q1 = "select * from Miembros";
$r1 = mysql_query($q1) or die(mysql_error());
while($a1 = mysql_fetch_array($r1))
{
$name = $a1['mem_name'];
$_POST['MyMessage'] = str_replace("[[nombre]]", $name, $_POST['MyMessage']);
$to = $a1[mem_email];
$subject = $_POST[sub];
$message = $_POST['Mensaje'];
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "From: $_POST[name] <$_POST[email]>\n";
$headers .= "X-Mailer: PHP/" . phpversion()."\n";
mail($to, $subject, $message, $headers);
$i++;
}
$error = "<p style=\"color:red;\">$i mensajes fueron enviados</p>";
}
?>
He logrado hasta el momento enviar bien toda la información recabada desde el <form> a las diferentes correos electrónicos que tengo en la base de datos, pero cuando uso la etiqueta [[nombre]] en el <textarea> solo se trasforma en el primer nombre que tengo dado de alta en la base de datos.
"[email protected] / Primer nombre", "[email protected] / Primer nombre" en vez de que sea "[email protected] / Primer nombre", "[email protected] / Segundo nombre" y así sucesivamente.
¿Qué estaré omitiendo, o equivocándome?
Espero me puedan ayudar con este problema
Gracias de antemano por sus consejos