Foros del Web » Programando para Internet » PHP »

Envio de emails

Estas en el tema de Envio de emails en el foro de PHP en Foros del Web. Hola muy buenas, tengo un problemilla y a ver si me ayuda alguien... explico. En mi base Mysql, tengo una tabla con la informacion de ...
  #1 (permalink)  
Antiguo 03/12/2003, 06:33
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
Envio de emails

Hola muy buenas, tengo un problemilla y a ver si me ayuda alguien... explico.

En mi base Mysql, tengo una tabla con la informacion de mis clientes, uno d los campos es la direccion d email y otro es la actividad a la q se dedican, luego las actividades estan almacenadas en otra tabla aparte. Lo q necesito hacer es un formulario q me permita enviar mensajes a esas direcciones pero con la posibilidad de elegir grupos por actividad.

Creo q es todo, si alguien me puede ayudar, lo agradezco y si necesitan q explike algo mas me lo dicen.

Grax...
  #2 (permalink)  
Antiguo 03/12/2003, 06:41
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Re: Envio de emails

Cita:
Mensaje Original por surferj
...uno d los campos es la direccion d email y otro es la actividad a la q se dedican, luego las actividades estan almacenadas en otra tabla aparte...
¿Donde están almacenadas las actividades?... en la primera o en la segunda tabla. Decidete.

Saludos.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #3 (permalink)  
Antiguo 03/12/2003, 06:43
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 6 meses
Puntos: 13
Tienes interconectadas de alguna forma las dos tablas, por ejemplo en la tabla de usuarios un campo como 'id_actividad_fk' o en la tabla actividades 'id_usuario_fk' o 'usuario_fk'.
  #4 (permalink)  
Antiguo 03/12/2003, 06:53
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
tablas

en la tabla actividad hay 2 campos, id_actividad y nombre actividad, luego en la tabla d usuarios en el campo actividad lo q almacena es la id de la actividad que fue seleccionada al momento de introducir los datos del usuario
  #5 (permalink)  
Antiguo 03/12/2003, 07:22
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
¿Y ya las indexaste y relacionaste entre ellas mediante SQL?
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #6 (permalink)  
Antiguo 03/12/2003, 07:27
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
si claro. De todos modos mejor planteo lo q tengo en mente a ver si es mas claro.

actualmente puedo enviar correo a todos los usuarios, osea ya tengo mi pagina con mi formulario q envia mail a todas las direcciones de correo q estan en esa tabla d usuarios, pero lo q kiero es poner un menu desplegable q me permita seleccionar la actividad del usuario y asi enviar el mailing solo a las direcciones q conincidan con esa seleccion
  #7 (permalink)  
Antiguo 03/12/2003, 07:38
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 6 meses
Puntos: 13
En la página del formulario haz una sql que coja todas las actividades y las metes en un select

<?php
$sentencia = mysql_query("SELECT ID_ACTIVIDAD, NOMBRE_ACTIVIDAD FROM ACTIVIDAD",$lincador);
?>
<select name="actividad" id="actividad">
<?php while($celda = mysql_fetch_array($sentencia)) { ?>
<option value="<?php echo $celda["ID_ACTIVIDAD"]; ?>">
<?php echo $celda["NOMBRE_ACTIVIDAD"]; ?>
</option>
<php } ?>
</select>

Despues en la página que recibe el formulario, solo te tienes q asegurar de que se le ha pasado por el formulario la actividad y lo metes en el WHERE de la consulta sql. Por ejemplo:

$SQL = "SELECT * FROM USUARIOS WHERE ID_ACTIVIDAD=".$_GET["actividad"];

Última edición por jercer; 03/12/2003 a las 07:40
  #8 (permalink)  
Antiguo 03/12/2003, 07:42
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
grax. voy a probar eso. :)

cualkier otra sugerencia es aceptada tambien!!
  #9 (permalink)  
Antiguo 03/12/2003, 07:57
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
el codigo

aki les pongo el codigo por si kieren sugerir algo...

<form name=form1 method=post action=formmail.php>
<table width="100%" border=1 cellspacing="2" cellpadding="2" align="center" bordercolor="#FF9900">
<tr bgcolor="#FF9900" bordercolor="#006699">
<td colspan="2" align="center" class=enlacesbarra>
ENVIAR MAILING
</td>
</tr>
<tr bordercolor=#FFFFFF height=25>
<td colspan=2>&nbsp;</td>
</tr>
<tr bordercolor=#FFFFFF>
<td colspan=2 align=center>
<table border=0 width=600>
<?
if (isset($enviar))
{

if (datosmail($cuerpo,$asunto)==1)
{
$query="select * from usuarios";
$result=mysql_query($query) or die("no se puede realizar la consulta");
while ($row=mysql_fetch_array($result))
{
//aqui se va a enviar el mail a todas las empresas
//$row[correo-e] será el e-mail de cada empresa

$mailsend=mail ("$row[correo_e]", "$asunto", "$cuerpo", "Content-Type: text/html; charset=iso-8859-1");
}

echo "<tr bordercolor=#FFFFFF height=25>";
echo "<td colspan=2>El e-mail ha sido enviado correctamente</td>";
echo "</tr>";

echo "<tr bordercolor=#FFFFFF height=25>";
echo "<td colspan=2>&nbsp;</td>";
echo "</tr>";
echo "<tr bordercolor=#FFFFFF height=25>";
echo "<td colspan=2 align=center>";
echo "<a href=formmail.php class=negritaamarillo>";
echo "<img src=../../graficos/volver.gif border=0 align=absmiddle>VOLVER</a>";
echo "</td>";
echo "</tr>";
}
else
{
echo "<tr bordercolor=#FFFFFF height=25>";
echo "<td colspan=2>&nbsp;</td>";
echo "</tr>";
echo "<tr bordercolor=#FFFFFF height=25>";
echo "<td colspan=2 align=center>";
echo "<a href=javascript:history.go(-1) class=negritaamarillo>";
echo "<img src=../../graficos/atras.gif border=0 align=absmiddle>ATRÁS</a>";
echo "</td>";
echo "</tr>";
}


}

else
{

?>

<tr bordercolor=#FFFFFF height=25>
<td width=100 class=titulopeque>Asunto</td>
<td width=500>
<input type=text name=asunto size=64 maxlength=100>
</td>
</tr>
<tr bordercolor=#FFFFFF height=25>
<td colspan=2>&nbsp;</td>
</tr>
<tr bordercolor=#FFFFFF height=25>
<td width=100 class=titulopeque>Mensaje</td>
<td width=500>
<textarea name=cuerpo cols=55 rows=10></textarea>
</td>
</tr>
<tr bordercolor=#FFFFFF height=25>
<td colspan=2>&nbsp;</td>
</tr>
<tr bordercolor=#FFFFFF height=25>
<td colspan=2 align=center>
<input type=submit name=enviar value=Enviar>
<input type=reset name=Submit2 value=Restablecer>
</td>
</tr>

<?}?>

<tr bordercolor=#FFFFFF height=25>
<td colspan=2>&nbsp;</td>
</tr>

</td>
</tr>
</table>
</table>
</form>
  #10 (permalink)  
Antiguo 03/12/2003, 19:51
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Exactamente... debes hacer lo que te explico jercer. Más nada. La lista desplegable la realizas mediante los ID de tu tabla primaria. No es necesario que uses la tabla que contiene el nombre de la actividad.

Saludos.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #11 (permalink)  
Antiguo 04/12/2003, 05:45
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
Tengo un problema bastante raro, probando el codigo del select siempre, no importa donde pruebe asi sea una pagina en blanco, me da el mismo error en la ultima linea, no se q pasa

  #12 (permalink)  
Antiguo 04/12/2003, 11:07
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Si colocas el error podemos ayudarte. De lo contrario... imposible.

Saludos.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #13 (permalink)  
Antiguo 05/12/2003, 04:46
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
el error me lo da siempre al final del codigo osea si tiene 24 lineas y termina en </html> me da esto:

Parse error: parse error, unexpected $ in select.php on line 24
  #14 (permalink)  
Antiguo 05/12/2003, 04:50
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
como d costumbre aki ta el codigo a ver si ayuda :/

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
include "/dbconnect.php";
include "/validacion/validacion.php";
?>

<?php
$sentencia = mysql_query("SELECT id_actividad, nombre_actividad FROM actividades",$lincador);
?>
<select name="actividad" id="actividad">
<?php while($celda = mysql_fetch_array($sentencia)) { ?>
<option value="<?php echo $celda["id_actividad"]; ?>">
<?php echo $celda["nombre_actividad"]; ?>
</option>
<php } ?>
</select>
</body>
</html>
  #15 (permalink)  
Antiguo 05/12/2003, 05:03
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
Tambien antes de consultar aki ya habia hecho algunas pruebas y la verdad es q lo del select ya lo tengo hecho y funciona bien me muestra las atividades de la tabla actividades pero aunke envio el formulario y me dice que fue enviado con exito no me llega nunca nada, una vez mas adjunto el codigo a ver si pueden encontrar en q me ekivoco.

Código PHP:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
  
include "dbconnect.php";
  include 
"validacion/validacion.php";
 
?>

<form name=form2 method=post action=prueba.php>
  <table width="100%" border=1 cellspacing="2" cellpadding="2" align="center" bordercolor="#FF9900">
  <tr bgcolor="#FF9900" bordercolor="#006699">
    <td  colspan="2" align="center" class=enlacesbarra>
      EMPRESAS
    </td>
  </tr>
  <tr bordercolor=#FFFFFF height=25>
      <td colspan=2>&nbsp;</td>
  </tr>
  <tr bordercolor=#FFFFFF>
  <td colspan=2 align=center>
  <table border=0 width=600>
    <?
      
if (isset($enviar))
      {

          if (
datosmail($cuerpo,$asunto)==1)
          {
             
$queryem="select * from empresas2 where actividad=$tipo";
             
$resultem=mysql_query($queryem) or die("no se puede realizar la consulta");
             while (
$row=mysql_fetch_array($resultem))
             {
              
//aqui se va a enviar el mail a todas las empresas
              //$row[correo-e] será el e-mail de cada empresa
             
             
$mailsend=mail ("$row[correo_e]""$asunto""$cuerpo""Content-Type: text/html; charset=iso-8859-1");
              }
              
              echo 
"<tr bordercolor=#FFFFFF height=25>";
                 echo 
"<td colspan=2>El e-mail ha sido enviado correctamente</td>";
              echo 
"</tr>";
              
              echo 
"<tr bordercolor=#FFFFFF height=25>";
                   echo 
"<td colspan=2 align=center>";
                        echo 
"<a href=prueba.php>Volver</a>";
                   echo 
"</td>";
              echo 
"</tr>";
          }
          else
          {
              echo 
"<tr bordercolor=#FFFFFF height=25>";
                 echo 
"<td colspan=2>&nbsp;</td>";
              echo 
"</tr>";
              echo 
"<tr bordercolor=#FFFFFF height=25>";
                   echo 
"<td colspan=2 align=center>";
                        echo 
"<a href=javascript:history.go(-1)>Atras</a>";
                   echo 
"</td>";
              echo 
"</tr>";
          }
          

      }
      
      else
      {

      
?>
        <?

              $queryact
="select * from actividades";
              
$resultact=mysql_query($queryact) or die("no se puede realizar la consulta");
              echo 
"<select name=tipo>";
              while (
$row=mysql_fetch_array($resultact))
                         {
                            echo 
"<option value=.$row[id_actividad]>".$row[nombre_actividad]."</option>";
                         }
                         echo 
"</select>";
                       
                       
?>



 <tr bordercolor=#FFFFFF height=25>
           <td width=100 class=titulopeque>Asunto</td>
           <td width=500>
             <input type=text name=asunto size=64 maxlength=100>
           </td>
      </tr>
        <tr bordercolor=#FFFFFF height=25>
           <td colspan=2>&nbsp;</td>
        </tr>
        <tr bordercolor=#FFFFFF height=25>
           <td width=100 class=titulopeque>Mensaje</td>
           <td width=500>
             <textarea name=cuerpo cols=55 rows=10></textarea>
           </td>
        </tr>
        <tr bordercolor=#FFFFFF height=25>
           <td colspan=2>&nbsp;</td>
        </tr>
        <tr bordercolor=#FFFFFF height=25>
           <td colspan=2 align=center>
             <input type=submit name=enviar value=Enviar>
             <input type=reset name=Submit2 value=Restablecer>
           </td>
        </tr>
        
        <?}?>
        
        <tr bordercolor=#FFFFFF height=25>
           <td colspan=2>&nbsp;</td>
        </tr>

  </td>
</tr>
</table>
</table>
  </form>
</body>
</html>
  #16 (permalink)  
Antiguo 05/12/2003, 07:14
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 6 meses
Puntos: 13
Por que no donde pone:

echo "<td colspan=2>El e-mail ha sido enviado correctamente</td>";


Pones:


echo "<td colspan=2>El e-mail ha sido enviado correctamente($row[correo_e])($asunto)($cuerpo)</td>";

Y pones lo q te imprime por pantalla.
  #17 (permalink)  
Antiguo 05/12/2003, 07:44
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
ok haciendo eso mira lo q sale:

Cita:
El e-mail ha sido enviado correctamente()(esto es una prueba)(esto es una prueba esto es una prueba)
deduzco q d alguan forma se esta perdiendo el script y no toma las direcciones d correo despues de hacer la seleccion de la actividad, pero no se pq
  #18 (permalink)  
Antiguo 05/12/2003, 07:49
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Hombre, si pones eso fuera del bucle es normal que saque eso, porque al salir del bucle $row es false y por eso $row[correo_e] es cadena vacia.

Mira, intenta el clasico echo para mostrar el valor de $tipo y el de $queryem y mira si son correctos. Ademas, mira en tu base de datos si el campo Actividad de empresa2 tiene los valores correspondientes al campo id_actividad de la tabla actividades.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #19 (permalink)  
Antiguo 10/12/2003, 04:39
Avatar de surferj  
Fecha de Ingreso: diciembre-2003
Ubicación: oviedo
Mensajes: 12
Antigüedad: 20 años, 4 meses
Puntos: 0
los valores de las tablas estan bien pero si no es mucho pedir y alguien me puede ayudar un poco con el codigo lo agradeceria ya q soy bastante nuevo en esto y todavia toy aprendiendo y a decir verdad probe hacer casi todo lo q me dicen pero todavia no logro dar con lo q me falta.

Grax...
  #20 (permalink)  
Antiguo 10/12/2003, 06:16
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
¬_¬ www.php.net
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
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 02:25.