Foros del Web » Programando para Internet » PHP »

Enviar mail desde PHP si se cumple condición

Estas en el tema de Enviar mail desde PHP si se cumple condición en el foro de PHP en Foros del Web. Buenas tardes a todos. Quiero enviar un email con la función de php, cosa que ya consigo, pero realmente quiero conseguir que si se cumple ...
  #1 (permalink)  
Antiguo 28/08/2013, 06:03
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Enviar mail desde PHP si se cumple condición

Buenas tardes a todos.

Quiero enviar un email con la función de php, cosa que ya consigo, pero realmente quiero conseguir que si se cumple una condición se envie. Aqui os pongo el codigo:

Código PHP:
<?php $Emailpadres $_POST["Email"]; ?>
<?php
if ($totalRows_Recordset2 3)

echo 
$Name "No name"//senders name 
$email "[email protected]"//senders e-mail adress 
$recipient "$Emailpadres"//recipient 
$mail_body "Texto para el destinatario"//mail body 
$subject "Sujeto"//subject 
$header "De: "$Name " <" $email ">\r\n"//optional headerfields 

mail($recipient$subject$mail_body$header); //mail command :) 
?>
No se como decirle al codigo, que cuando el $totalrows_Recordset2 sea superior a 3, me envie el email. A ver si me podeis ayudar.

¡Graciaaas!
  #2 (permalink)  
Antiguo 28/08/2013, 06:10
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Enviar mail desde PHP si se cumple condición

Qué es $totalrows_Recordset2?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 28/08/2013, 06:28
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

Es una variable que cuenta todos los registros en la tabla MySQL
  #4 (permalink)  
Antiguo 28/08/2013, 07:22
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Enviar mail desde PHP si se cumple condición

Cita:
Iniciado por SeRgIeTTe Ver Mensaje
Buenas tardes a todos.

Quiero enviar un email con la función de php, cosa que ya consigo, pero realmente quiero conseguir que si se cumple una condición se envie. Aqui os pongo el codigo:

Código PHP:
<?php $Emailpadres $_POST["Email"]; ?>
<?php
if ($totalRows_Recordset2 3)

echo 
$Name "No name"//senders name 
$email "[email protected]"//senders e-mail adress 
$recipient "$Emailpadres"//recipient 
$mail_body "Texto para el destinatario"//mail body 
$subject "Sujeto"//subject 
$header "De: "$Name " <" $email ">\r\n"//optional headerfields 

mail($recipient$subject$mail_body$header); //mail command :) 
?>
No se como decirle al codigo, que cuando el $totalrows_Recordset2 sea superior a 3, me envie el email. A ver si me podeis ayudar.

¡Graciaaas!
Ponle unos corchetes a ese if hombre :D
  #5 (permalink)  
Antiguo 28/08/2013, 07:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

Código PHP:
<?php $Emailpadres $_POST["Email"]; ?> 
<?php 
if [$totalRows_Recordset2 3

echo 
$Name "No name"//senders name  
$email "[email protected]"//senders e-mail adress  
$recipient "$Emailpadres"//recipient  
$mail_body "Texto para el destinatario"//mail body  
$subject "Sujeto"//subject  
$header "De: "$Name " <" $email ">\r\n"//optional headerfields  

mail($recipient$subject$mail_body$header); //mail command :)  
?>
¿Corchetes de esta manera? ¿Asi esta bien? ¡Graciaaaas!
  #6 (permalink)  
Antiguo 28/08/2013, 07:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar mail desde PHP si se cumple condición

Cita:
¿Corchetes de esta manera? ¿Asi esta bien? ¡Graciaaaas!
Yo creo que se refería a las llaves del bloque, corchetes no.
Código PHP:
Ver original
  1. if (condicion) {
  2.   // bloque
  3. }

Te sugeriría leer una manual de sintaxis básica de PHP y/o programación general, te hace bastante falta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/08/2013, 08:09
 
Fecha de Ingreso: abril-2012
Mensajes: 106
Antigüedad: 12 años
Puntos: 2
Respuesta: Enviar mail desde PHP si se cumple condición

supongo que quiso decir LLAVES para el IF. te quedaria asi:
Código PHP:
Ver original
  1. <?php $Emailpadres = $_POST["Email"]; ?>
  2. <?php
  3. if [$totalRows_Recordset2 > 3]
  4.  
  5. echo $Name = "No name"; //senders name  
  6. $email = "[email protected]"; //senders e-mail adress  
  7. $recipient = "$Emailpadres"; //recipient  
  8. $mail_body = "Texto para el destinatario"; //mail body  
  9. $subject = "Sujeto"; //subject  
  10. $header = "De: ". $Name . " <" . $email . ">\r\n"; //optional headerfields  
  11.  
  12. mail($recipient, $subject, $mail_body, $header); //mail command :)  
  13. ?>
.
y como dice pateketrueke te haria bien que leas el manual
  #8 (permalink)  
Antiguo 28/08/2013, 08:10
 
Fecha de Ingreso: abril-2012
Mensajes: 106
Antigüedad: 12 años
Puntos: 2
Respuesta: Enviar mail desde PHP si se cumple condición

me equicoque perdon te quedaria asi :

Código PHP:
Ver original
  1. <?php $Emailpadres = $_POST["Email"]; ?>
  2.     <?php
  3.     if ($totalRows_Recordset2 > 3){
  4.      
  5.     echo $Name = "No name"; //senders name  
  6.     $email = "[email protected]"; //senders e-mail adress  
  7.     $recipient = "$Emailpadres"; //recipient  
  8.     $mail_body = "Texto para el destinatario"; //mail body  
  9.     $subject = "Sujeto"; //subject  
  10.     $header = "De: ". $Name . " <" . $email . ">\r\n"; //optional headerfields  
  11.      
  12.     mail($recipient, $subject, $mail_body, $header); //mail command :)  
  13. }
  14.     ?>
  #9 (permalink)  
Antiguo 28/08/2013, 09:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

Muchas gracias pero... No me funciona... Me sale el típico cuadradito naranja con el error "Undefined index: Email" Creo que la variable esta insertada correctamente, proviene de un Recordset...
  #10 (permalink)  
Antiguo 28/08/2013, 09:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar mail desde PHP si se cumple condición

Todas las variables $_POST deben provenir de un formulario de método post, ¿eso es así?

Vamos, que el error que obtienes se debe a que no existe ningún campo con ese nombre en la variable $_POST, ¿se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 28/08/2013, 09:10
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Enviar mail desde PHP si se cumple condición

Si, quise decir las llaves de apertura y cierre del if { y }, se me escapó lo de corchete :p
  #12 (permalink)  
Antiguo 28/08/2013, 09:16
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

Cita:
Iniciado por pateketrueke Ver Mensaje
Todas las variables $_POST deben provenir de un formulario de método post, ¿eso es así?

Vamos, que el error que obtienes se debe a que no existe ningún campo con ese nombre en la variable $_POST, ¿se entiende?
Provienen de un recordset, y no de ningun formulario. ¿Como lo puedo hacer?
  #13 (permalink)  
Antiguo 28/08/2013, 09:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar mail desde PHP si se cumple condición

Cita:
Iniciado por SeRgIeTTe Ver Mensaje
Provienen de un recordset, y no de ningun formulario. ¿Como lo puedo hacer?
Entonces ese es tu principal problema, ¿de dónde viene dicho recordset? ¿en qué variables tienes los datos?

Entiende que las variables no existen por arte de magia, así que de algún modo deberías saber cómo utilizarlas, después de todo el recordset los obtienes con programación ¿o me equivoco?

Espero que no creas que vamos a adivinar cómo es que haces las cosas, ojalá que no sea así.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 28/08/2013, 09:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

Por supuesto que no, pateketrueke, os muestro todo el código que sera más simple:
Código PHP:
<?php require_once('Connections/alumnos.php'); ?>
<?php 
require_once('Connections/faltas.php'); ?>
<?php 
require_once('Connections/incidencias.php');?>
<?php 
require_once('Connections/retardos.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

mysql_select_db($database_alumnos$alumnos);
$query_Recordsetalumnos "SELECT * FROM alumnos";
$Recordsetalumnos mysql_query($query_Recordsetalumnos$alumnos) or die(mysql_error());
$row_Recordsetalumnos mysql_fetch_assoc($Recordsetalumnos);
$totalRows_Recordsetalumnos mysql_num_rows($Recordsetalumnos);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
</head>

<body>
<div data-role="page" id="page">
<div data-role="header">
        <h1>Alumnos</h1><a href="javascript:history.back()">Atrás</a>
    </div>
    &nbsp;
<table width="95%" border="1" align="center">
  <tr align="center" valign="middle">
    <td><strong>Imagen</strong></td>
    <td><strong>Nombre y Apellidos</strong></td>
    <td><strong>Tlf. Casa</strong></td>
    <td><strong>Movil Padre</strong></td>
    <td><strong>Movil Madre</strong></td>
    <td><strong>E-mail</strong></td>
    <td><strong>Nº Faltas</strong></td>
    <td><strong>Nº Incidencias</strong></td>
    <td><strong>Nº Retardos</strong></td>
  </tr>
  <?php do { ?>
    <tr align="center" valign="middle">
      <td><a href="<?php echo $row_Recordsetalumnos['Nombreyapellidos']; ?>.php"><?php echo $row_Recordsetalumnos['Imagen']; ?></a></td>
      <td><a href="<?php echo $row_Recordsetalumnos['Nombreyapellidos']; ?>"><?php echo $row_Recordsetalumnos['Nombreyapellidos']; ?></a></td>
            <td><?php echo $row_Recordsetalumnos['Tlf. Casa']; ?></td>
      <td><?php echo $row_Recordsetalumnos['Movil Padre']; ?></td>
      <td><?php echo $row_Recordsetalumnos['Movil Madre']; ?></td>
      <td><?php echo $row_Recordsetalumnos['Email']; ?></td>
      <td><?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

mysql_select_db($database_faltas$faltas);
$query_Recordset2 "SELECT *  FROM `faltasasistencia`.`faltaasistencia`
            WHERE (`Nombreyapellidos` LIKE '%{$row_Recordsetalumnos['Nombreyapellidos']}%')"
;
$Recordset2 mysql_query($query_Recordset2$faltas) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);
?>

<?php echo $totalRows_Recordset2 ?>

<?php $Emailpadres $_POST["Email"]; ?>
    <?php
    
if ($totalRows_Recordset2 3){
     
    echo 
$Name "No name"//senders name  
    
$email "[email protected]"//senders e-mail adress  
    
$recipient "$Emailpadres"//recipient  
    
$mail_body "Texto para el destinatario"//mail body  
    
$subject "Sujeto"//subject  
    
$header "De: "$Name " <" $email ">\r\n"//optional headerfields  
     
    
mail($recipient$subject$mail_body$header); //mail command :)  
}
    
?>
 
 

<?php
mysql_free_result
($Recordset2);
?>
</td>


<td>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
  
  
}
}

mysql_select_db($database_incidencias$incidencias);
$query_Recordsetincidencias "SELECT * FROM incidencias WHERE (`Autor` LIKE '%{$row_Recordsetalumnos['Nombreyapellidos']}%')";
$Recordsetincidencias mysql_query($query_Recordsetincidencias$incidencias) or die(mysql_error());
$row_Recordsetincidencias mysql_fetch_assoc($Recordsetincidencias);
$totalRows_Recordsetincidencias mysql_num_rows($Recordsetincidencias);
?>

<?php echo $totalRows_Recordsetincidencias ?>
</td>
<td>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

mysql_select_db($database_retardos$retardos);
$query_Recordsetretardos "SELECT * FROM retardo WHERE (`Nombreyapellidos` LIKE '%{$row_Recordsetalumnos['Nombreyapellidos']}%')";
$Recordsetretardos mysql_query($query_Recordsetretardos$retardos) or die(mysql_error());
$row_Recordsetretardos mysql_fetch_assoc($Recordsetretardos);
$totalRows_Recordsetretardos mysql_num_rows($Recordsetretardos);

mysql_free_result($Recordsetretardos);
?>

<?php echo $totalRows_Recordsetretardos ?> 


</td>


    </tr>
    <?php } while ($row_Recordsetalumnos mysql_fetch_assoc($Recordsetalumnos)); ?>
    
    
</table>
&nbsp;
</body>
</html>

<?php
mysql_free_result
($Recordsetalumnos);
?>
Lo que muestra es una tabla dinámica con todos los datos que tengo en MySQL. Lo que quiero es que cuando la columna nº de faltas llegue a más de 3, envie un e-mail automaticamente al e-mail que se muestra en la tabla dinamica. No sé si me he explicado.

Un saludo!
  #15 (permalink)  
Antiguo 28/08/2013, 09:56
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Enviar mail desde PHP si se cumple condición

Ahora se entiende un poco mas lo que quieres hacer, pero.... personalmente, yo no haría eso en el listado, sino cuando se inserte la falta de asistencia, pero bueno. Al lío.
Por lo que veo, el Email que quieres se encuentra en $row_Recordsetalumnos['Email'] y no en $_POST["Email"] (al menos es lo que deduzco del código, es posible que me equivoque y el email destino sea otro al de ese recordset.)
Si ese es el email que quieres, pues solo cambia el $_POST por el $row_Recordsetalumnos
Ojo, que estoy haciendo un poco de adivino, nunca me gustó las parrafadas que inserta dreamweaver en el código y me pierdo un poco.

Por cierto, si vas fallando en algo así, con mas razón te invito a que mires algún manual/tutorial de php, sin ánimos de ofender ni nada, pero puede ser un incordio que cada vez que se muestre ese listado, al padre del alumno que ha faltado mas de tres veces le llegue un email, dada la lógica de ese script, así pasaría.
  #16 (permalink)  
Antiguo 28/08/2013, 09:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar mail desde PHP si se cumple condición

Entiendo, ¿entonces por qué has estado usando $_POST todo este tiempo si no viene al caso?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 28/08/2013, 10:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 45
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Enviar mail desde PHP si se cumple condición

DooBie, me has hecho ver la luz! Jejeje, pienso que es mejor hacerlo al insertar la falta, porque si no, cada vez que se actualice la página, le enviara un e-mail y se saturara el personal jajaja. Ahora mismo me pongo a ello y lo compruebo. Y sobretodo, en lo último llevas razón, pero me pongo a ello y no entiendo nada de nada...

pateketrueke, un fallo técnico jejeje


EDITO: Pero entonces, que pongo en el action al insertar la falta? Actualmente esta: <?php echo $editFormAction; ?>

Y además, como obtengo el email de los padres, si cuando inserto la falta no pongo su emal?

Última edición por SeRgIeTTe; 28/08/2013 a las 10:46

Etiquetas: condición, cumple, mail
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 05:42.