Foros del Web » Programando para Internet » PHP »

Cambiar título del email dependiendo el caso

Estas en el tema de Cambiar título del email dependiendo el caso en el foro de PHP en Foros del Web. Hola, buenas. Quisiera un consejo sobre el envío del título de un email. Estoy utilizando este código para enviar los correos a los usuarios que ...
  #1 (permalink)  
Antiguo 21/11/2016, 12:53
Avatar de Jose_A  
Fecha de Ingreso: mayo-2015
Ubicación: México, Sonora.
Mensajes: 180
Antigüedad: 8 años, 10 meses
Puntos: 0
Cambiar título del email dependiendo el caso

Hola, buenas. Quisiera un consejo sobre el envío del título de un email. Estoy utilizando este código para enviar los correos a los usuarios que se registran:
Código:
<?php
$id = $_POST["id"];
$verificacion = $_POST["verificacion"];
$fecha=$_POST["fecha"];

include 'conexion.php';

//**************************************** Verificacion 1 ok, 2 no aprobado, 0 espera de verificacion, 4 sin movimientos  ****************************

//echo '<script language="javascript">alert("El valor de id es = '.$id.' ");</script>'; 


if($verificacion==3){
    //$tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where id=".$id);
   
    $tabla=$mysqli->query("select c.idCurso, c.cupo, c.nombreCurso, c.claveCurso from curso c inner join curso_asistente ca 
        on c.idCurso=ca.idCurso where ca.idUsuario='".$id."'");
    //checar cupo del grupo!!!
    $cursosLlenos ="";
    $cursosIns ="";    
    //agregar asistente al curso!!!
    
    while($row = $tabla->fetch_array()) { 

        //Versiòn 2: Se calcula la capacidad
        /*$inscritos = $mysqli->query("select verificacion from asistente inner join curso_asistente on curso_asistente.idUsuario = asistente.folio && curso_asistente.idCurso = '".$row[0]."' && asistente.verificacion=3");*/

        $inscritos = $mysqli->query("select inscrito from curso_asistente where idCurso = '".$row[0]."' && inscrito=1 ");


        $NumInscritos = mysqli_num_rows($inscritos);
        $capacidad = $row[1] - $NumInscritos; //cupo menos inscritos

        if($capacidad>0){
            $inscribir = $mysqli->query("update curso_asistente set inscrito=1 where (idUsuario='".$id."' && idCurso='".$row[0]."')");
            $cursosIns .= " + ".htmlentities($row[2])."<br>";
        }else{

            $cursosLlenos .= " - ".htmlentities($row[2])."<br>";
            //$mysqli->query("delete from curso_asistente where nomCurso='".$row[0]."' and idUsuario='".$id."'");
            /*$mysqli->query("update curso set claveCurso='".$row[3]."_X' where 
                claveCurso='".$row[3]."' and year ='".$fecha."'");*/
                
        }
       
    }

    $tabla=$mysqli->query("update asistente set verificacion=".$verificacion." where folio='".$id."'");
    $tabla=$mysqli->query("update factura set verificacion=1 where idUsuario='".$id."'"); 

}else if($verificacion==2){ //SI ES RECHAZADO
    $tabla3=$mysqli->query("update asistente set verificacion=".$verificacion." where folio='".$id."'");
    $tabla3=$mysqli->query("update factura set verificacion=0 where idUsuario='".$id."'");
}



    //////////////////Se agrega nuevo codigo para enviar correo electronico de confirmacion
    include "config.php";
    require 'class.phpmailer.php';  
    $mail = new PHPMailer();
    //Luego tenemos que iniciar la validaci&oacute;n por SMTP:
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->Host = $host; // SMTP a utilizar. Por ej. smtp.elserver.com
    $mail->Username = $Username; // Correo completo a utilizar
    $mail->Password = $password; // Contrase&ntilde;a
    $mail->Port = $port; // Puerto a utilizar
    $mail->SMTPSecure = $smtpSecure;
    //Con estas pocas l&iacute;neas iniciamos una conexi&oacute;n con el SMTP. Lo que ahora deber&iacute;amos 
    //hacer, es configurar el mensaje a enviar, el //From, etc.
    //$mail->From = "[email protected]"; // Desde donde enviamos (Para mostrar)
    $mail->FromName = $fromName;
    //$tabla=$mysqli->query("Select * from asistente where id='".$id."'");
    $tabla=$mysqli->query("Select * from asistente where folio='".$id."'");
    //Estas dos l&iacute;neas, cumplir&iacute;an la funci&oacute;n de encabezado (En mail() usado de esta forma: “From: Nombre <[email protected]>”) de //correo.

    while($row = $tabla->fetch_array()){

        $mail->AddAddress($row[6]); // Esta es la direcci&oacute;n a donde enviamos //SE cambio row 7 por row 6.
       // $mail->AddBCC("[email protected]", $name = "Adrian Vazquez");  // Esta es la copia oculta que se envia.
        $mail->IsHTML(true); // El correo se env&iacute;a como HTML
        $mail->Subject = "Inscripcion CONFIRMADA a la SNIDM - Universidad de Sonora"; // Este es el titulo del email.

        if($verificacion==3){
            $body = "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para confirmar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas ha sido registrada EXITOSAMENTE. </strong><br><br>";
        }else if($verificacion==2 && $row[10]=0 ){ //si es becado
            $body = "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas NO est&aacute; finalizada. Lamentablemente no se pudo visualizar bien la imagen de tu credencial. Te invitamos a subir de nuevo dicha imagen. </strong><br><br>";

        }else if($verificacion==2 && $row[10]=1){//si NO es becado
             $body = "<strong> Hola ".$row[0].",<br><br> 
            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y 
            Docencia en Matem&aacute;ticas NO st&aacute; COMPLETA. Lamentablemente no se pudo visualizar bien la imagen del comprobante de pago. Te invitamos a subir de nuevo dicha imagen.  </strong><br><br>";
        
        }

        $body .= "<span><strong>Cursos Seleccionados:</strong></span><br>";

        $cursoSelec = $mysqli->query("select curso.nombreCurso from curso
                            inner join curso_asistente on curso.idCurso = curso_asistente.idCurso
                            where idUsuario='".$id."'"); //Solo los cursos seleccionados.
        /*$tabla = $mysqli->query("select curso.nombreCurso from curso_asistente 
                            inner join curso on curso.idCurso = curso_asistente.idCurso
                            where idUsuario='".$id."'");

        */
         while($curso=$cursoSelec->fetch_array()){
                $body .= " + ".htmlentities($curso[0])."<br>";
            }

        $body .= "<span><strong>Cursos donde obtuvo cupo:</strong></span><br>" .$cursosIns;
        $body .="<span><strong>Cursos donde NO obtuvo cupo:</strong></span><br>" .$cursosLlenos;
            /*if( $tabla->num_rows > 0 ){
                  $tabla = $mysqli->query("select curso.nombreCurso from curso
                            inner join curso_asistente on curso.idCurso = curso_asistente.idCurso
                            where idUsuario='".$id."' && inscrito=1"); //Aqui se consideran las materias en las que fue aceptado.

            while($row=$tabla->fetch_array()){
                $body .= " + ".htmlentities($row[0])."<br>";
            }
            //else{
            //$body .="Desafortunadamente no pudo inscribirse en los siguientes cursos:<br>" .$cursosLlenos;
       //}
        }*/

        $body .= "<strong>Datos De registro:</strong><br>";
        $body .= "<strong>Folio</strong>:".$row[5]."<br>";
        $body .= "<strong>Nombre:</strong>".$row[0]." ".$row[1]." ".$row[2]."<br>";
        $body .= "<strong>Registrado como:</strong>".$row[4]."<br>";
        $body .= "<strong>Instituci&oacute;n</strong>:".$row[3]."<br><br>";    
       
        if($row[11]=='1'){
            //$body.=    "<strong>Datos de facturaci&oacute;n:</strong><br>";
            $fac=$mysqli->query("Select * from factura where idUsuario='".$id."'");

            while($fact = $fac->fetch_array()){
                $body .= "<strong>Datos De Facturaci&oacute;n:</strong><br>";
                $body .= "<strong>Nombre</strong>:".$fact[0]."<br>";
                $body .= "<strong>Calle</strong>:".$fact[1]."<br>";
                $body .= "<strong>N&uacute;mero</strong>:".$fact[2]."<br>";    
                $body .= "<strong>Colonia</strong>:".$fact[3]."<br>";
                $body .= "<strong>C.P.</strong>:".$fact[4]."<br>";
                $body .= "<strong>Municipio</strong>:".$fact[5]."<br>";
                $body .= "<strong>Estado</strong>:".$fact[6]."<br>";
                $body .= "<strong>Pa&iacute;s</strong>:".$fact[11]."<br>";
                $body .= "<strong>R.F.C</strong>:".$fact[7]."<br>";
                if($fact[10]==1) $fact[10]="Si";
                else $fact[10]="No";
                $body .= "<strong>Iva desglosado: </strong>".$fact[10]."<br>";//quedo un 1 o un 0. Deberia mandarse un si o un no.
                $body .= "<strong>E-mail</strong>:".$fact[9]."<br><br>";
            }

        }
            
        $mail->Body = $body; // Mensaje a enviar

        $exito = $mail->Send(); // Env&iacute;a el correo.

        //Enviar copia


        //Tambi&eacute;n podr&iacute;amos agregar simples verificaciones para saber si se envi&oacute;:
        if($exito){
            echo true;
            echo "Se envio";
        }else{
            echo $mail->ErrorInfo;
        }

    }

$mysqli->close();
header("Location:panelC.php?view=A1&fecha=".$fecha."");
?>
En caso de que "verificación==3" (osea que el asistente sea aceptado), se envía un correo con el título: "Inscripcion CONFIRMADA a la SNIDM - Universidad de Sonora".

Aquí viene mi duda, cuál es la manera más adecuada para que cuando "verificacion==2 && $row[10]=1" (Asistente NO aceptado) Y "verificacion==2 && $row[10]=0" (asistente tampoco aceptado)

Me envíe otro título en el correo, en lugar de "Inscripcion CONFIRMADA" me mande: "Inscripcion DENEGADA". Se tiene que hacer otro correo? o cómo lo puedo hacer?, gracias de antemano !!
  #2 (permalink)  
Antiguo 21/11/2016, 18:47
 
Fecha de Ingreso: abril-2012
Mensajes: 124
Antigüedad: 12 años
Puntos: 3
Respuesta: Cambiar título del email dependiendo el caso

Igual que lo haces por el texto del email, se puede hacer con el título.
Código PHP:
Ver original
  1. if($verificacion==3){
  2.             $body = "<strong> Hola ".$row[0].",<br><br>
  3.            Este correo es para confirmar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y
  4.            Docencia en Matem&aacute;ticas ha sido registrada EXITOSAMENTE. </strong><br><br>";
  5.         }else if($verificacion==2 && $row[10]=0 ){ //si es becado
  6.             $mail->Subject = "Inscripcion DENEGADA a la SNIDM - Universidad de Sonora"; // Este es el titulo del email.            
  7.             $body = "<strong> Hola ".$row[0].",<br><br>
  8.            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y
  9.            Docencia en Matem&aacute;ticas NO est&aacute; finalizada. Lamentablemente no se pudo visualizar bien la imagen de tu credencial. Te invitamos a subir de nuevo dicha imagen. </strong><br><br>";
  10.  
  11.         }else if($verificacion==2 && $row[10]=1){//si NO es becado
  12.             $mail->Subject = "Inscripcion DENEGADA a la SNIDM - Universidad de Sonora"; // Este es el titulo del email.
  13.              $body = "<strong> Hola ".$row[0].",<br><br>
  14.            Este correo es para informar que tu inscripci&oacute;n a la Semana Nacional de Investigaci&oacute;n y
  15.            Docencia en Matem&aacute;ticas NO st&aacute; COMPLETA. Lamentablemente no se pudo visualizar bien la imagen del comprobante de pago. Te invitamos a subir de nuevo dicha imagen.  </strong><br><br>";
  16.        
  17.         }
__________________
Mi web de programación en PHP en construcción, claro. Un dia de esos pongo algo.
  #3 (permalink)  
Antiguo 21/11/2016, 21:00
Avatar de Jose_A  
Fecha de Ingreso: mayo-2015
Ubicación: México, Sonora.
Mensajes: 180
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Cambiar título del email dependiendo el caso

Sí, ese método si me funcionó pero el título del email no es posible colocarle el acento en "inscripción" verdad?, osea, colocándolo así: " inscripci&oacute;n " al momento del asistente recibirlo aparecerán caracteres y no el acento, eso también ocupa ser distinto?

Etiquetas: dependiendo, email, html, mysql, registro, select, tabla, usuario
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 01:30.