Nueva pregunta

Pregunta:

 
  0  
 
Fecha: 28-06-2016 04:59:47 (En Español)

Envío de formulario de mail PHP y Mysql a diferentes correos por áreas[No resuelta]

Envío de formulario de mail PHP a diferentes correos por áreas

Sres de la comunidad haber si me pueden ayudar con un tema que estoy haciendo soy novato en programacion.

bueno en mi formulario de envio de mail(contactenos)

estoy diseñando la opción para elegir que la personas pueda elegir a qué área enviar su correo(almacén, sistemas, logística etc)

para ello he visto que puedo usar el “Select Name”

<select name="Clientes">
  <option value="C01">almacén</option>
  <option value="C02">sistemas</option>
  <option value="C03">logistica</option>
</select>


pero desconozco la lógica que me permita enviar un correo por área seleccionada, todo envio se tiene que guardar en Mysql

desde ya agradesco el apoyo brindado en relación a estema

Gracias
Etiquetas: JQuery - MySQL - PHP - PHP MySQLi - PHP PDO Votos: 0 - Respuestas: 7 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 28-06-2016 07:38:54 Hola Mr. MEZA

    Espero te sirva lo siguiente.

    Cabe anotar que debes dar más información de hasta donde dominas php de lo contrario las soluciones pueden ser confusas.

    Vas a usar un par de archivos php.

    El primero te permite detallar el texto que vas a enviar con el correo destino y el segundo hace el trabajo de enviarlo.

    ayuda.php

    <html>
    <head>
    <title>PHP Central, Ayuda, Mr HCH</title>
    <script language='JavaScript'></script>
    </head>
    	<body>
    		<form name="envio_correo" id="envio_correo" method="POST" action='envio_mail.php'>
    		<table>	
    			<tr>
    				<td>
    					 <textarea rows="4" cols="50" name='texto' id='texto'>Escribe aqui lo que vas a enviar en el mail...</textarea> 
    					 Destino del correo
    					<select name="correo" id="correo">
    						<option value="tienda_almacen@gmail.com">Almacen</option>
    						<option value="tienda_sistemas@gmail.com">Sistemas</option>
    						<option value="tienda_logistica@gmail.com">Logistica</option>
    						<option value="misterhch@gmail.com">Apoyo en PHP</option>
    					</select>
    					<input type='submit' value='Enviar correo' />
    				</td>
    			</tr>
    		</table>
                    </form>
    	</body>	
    </html>
    



    Está escrito en lo mñas basico de html y php, el Textarea es donde vas a escribir lo que quieres enviar y el select tiene "quemados" los correos de destino value='....', el otro archivo.

    envio_mail.php <=== Se debe llamar asì porque ese nombre lo tiene el primer archivo, cuando presiones el botón 'Enviar correo'.

    <html>
    <head>
    <title>PHP Central, Ayuda, Mr HCH</title>
    <script language='JavaScript'></script>
    </head>
    	<body>
    		<form name="envio_correo" id="envio_correo" method="POST" action='envio_mail.php'>
    		<?
    		$texto = $_POST['texto'];
    		$correo = $_POST['correo'];
    		echo $texto ."<br>". $correo."<br><br>";
    		?>
    		Ahora puedes programar por aqui el codigo de MAIL para el envio.
    		</form>
    	</body>	
    </html>
    


    Solo te explico hasta la parte donde en otro archivo tomas información del primero.

    Nota:
    Esto se puede mejorar de muchas maneras, sin embargo creo que eso ya lo sabes jeje, osea en el primer archivo para no quemar los correos puedes leer una base de datos de correos y armas tu propio Selección de correo con eso no tienes nada quemado y en el segundo archivo puedes escribir en la base de datos que quieras para llevar la trazabilidad de correos enviados.

    Espero te sea de utilidad esta mini ayuda.

    Importante: Recuerda que si envias correos masivamente por internet verifica el limite de correos que te permite enviar tu proveedor en mi caso no me dejan enviar más de 100 por hora y con algunas condiciones porque si los destinatarios enviar esos correos como spam sancionan a tu proveedor y de paso a ti.

    Casi me pasa no se si sea tu caso.
      Votos: 1 - Link respuesta
     
  • Fecha: 29-06-2016 10:19:33 esta puede ser una opción
    <select name="Clientes">
    <option value="C01">almacén</option>
    <option value="C02">sistemas</option>
    <option value="C03">logistica</option>
    </select>
    


    
    if(isset($_POST['enviarEmail'])){
    
    $this->ejecutarCliente($_POST['cliente'],$POST);
    
    }
    
    function ejecutarCliente($cliente,$req){
    if(!count($cliente))
         return false;
    
    switch ($cliente) {
        case 'C01':
              $email = 'infoalmacen@dominio.com';
              $response = $this->enviarEmail($email);
              if(!$response)
                 return false;
    $_POST['email] = $email;
    $this->guardarEmail($req);
        case 'C02':
            echo "i es igual a 1";
        case 'C03':
            echo "i es igual a 2";
       }
    }
    
    function enviarEmail($email){
    
    
    // Varios destinatarios
    $para = $email.', ';
    $para  .= 'aidan@example.com' . ', '; // atención a la coma
    $para .= 'wez@example.com';
    
    // título
    $título = 'Recordatorio de cumpleaños para Agosto';
    
    // mensaje
    $mensaje = '
    <html>
    <head>
      <title>Recordatorio de cumpleaños para Agosto</title>
    </head>
    <body>
      <p>¡Estos son los cumpleaños para Agosto!</p>
      <table>
        <tr>
          <th>Quien</th><th>Día</th><th>Mes</th><th>Año</th>
        </tr>
        <tr>
          <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td>
        </tr>
        <tr>
          <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td>
        </tr>
      </table>
    </body>
    </html>
    ';
    
    // Para enviar un correo HTML, debe establecerse la cabecera Content-type
    $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
    $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    
    // Cabeceras adicionales
    $cabeceras .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    $cabeceras .= 'From: Recordatorio <cumples@example.com>' . "\r\n";
    $cabeceras .= 'Cc: birthdayarchive@example.com' . "\r\n";
    $cabeceras .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    
    // Enviarlo
    mail($para, $título, $mensaje, $cabeceras);
    }
    
    function guardarEmail($data = array()){
    $mysql = mysqli_connect('localhost','database','user','pass');
    
    $sql = 'INSERT INTO table (email, contenido, asusto,fecha,fecha_upd) VALUES('.$data['email'].','.$data['contenido'].','.$data['asusnto'].', now(), now())';
    
    $mysql->query($sql);
    }
    


    espero que esto te sirva de base para lo que necesites
      Votos: 2 - Link respuesta
     
  •  
      0  
     
    Fecha: 01-07-2016 13:46:15 este es mi codigo completo pero solo envia lo que esta en la variable $email = "telperu.com@gmail.com"; el select name no enviar.

    me pueden ayudar, muchas gracias


    <?php
    $aviso = "";
    // check form  
    if ($_POST['email'] != "") {
    	// email de destino
    	$email = "telperu.com@gmail.com";
    	
    	// asunto del email
    	$subject = "Contacto";
    	
    	// Cuerpo del mensaje
    	$mensaje = "---------------------------------- \n";
    	$mensaje.= "            Contacto               \n";
    	$mensaje.= "---------------------------------- \n";
    	$mensaje.= "NOMBRE:   ".$_POST['nombre']."\n";
    	$mensaje.= "EMPRESA:  ".$_POST['empresa']."\n";
    	$mensaje.= "AREA:     ".$_POST['area']."\n";
    	$mensaje.= "EMAIL:    ".$_POST['email']."\n";
    	$mensaje.= "TELEFONO: ".$_POST['telefono']."\n";
    	$mensaje.= "FECHA:    ".date("d/m/Y")."\n";
    	$mensaje.= "HORA:     ".date("h:i:s a")."\n";
    	$mensaje.= "IP:       ".$_SERVER['REMOTE_ADDR']."\n\n";
    	$mensaje.= "---------------------------------- \n\n";
    	$mensaje.= $_POST['mensaje']."\n\n";
    	$mensaje.= "---------------------------------- \n";
    	
    	
    	// headers del email
    	$headers = "From: ".$_POST['email']."\r\n";
    	
    	// Enviamos el mensaje
    	if (mail($email, $subject, $mensaje, $headers)) {
    		$aviso = "Su mensaje fue enviado correctamente";
    	} else {
    		$aviso = "Error de envío";
    	}
    }
    ?>
    <!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>Enviar Email con PHP </title>
    <style type="text/css">
    body {
    	margin: 16px;
    	padding: 0;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	font-size: 12px;
    	color: #333;	
    }
    input, textarea {
    	float: left;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	font-size: 12px;
    	color: #333;
    	padding: 2px;
    	width: 250px;
    	margin-bottom: 4px;
    }
    
    
    area {
    	float: left;
    	font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
    	font-size: 12px;
    	color: #333;
    	padding: 2px;
    	width: 250px;
    	margin-bottom: 4px;
    }
    label {
    	float: left;
    	width: 100px;
    }
    button {
    	width: 80px;
    	background: #333;
    	color: #FFF;
    	padding: 3px 8px;
    }
    form {
    	border: solid 1px #CCC;
    	background: #efefef;
    	padding: 16px;
    	width: 380px;
    }
    br { clear: both; }
    em { color: red; }  
    </style>
    </head>
    <body>
    <h2>Enviar Email con PHP</h2>
    <?php if ($aviso != "") { ?>
    <p><em><?php echo $aviso; ?></em></p>
    <?php } ?>
    <form action="" method="post">
        <label for="nombres">Nombres</label> <input name="nombre" id="nombre" type="text" /><br />
        
        <label for="empresa">Empresa</label> <input name="empresa" id="empresa" type="text" /><br />
        
      <label for="area">Area</label> 
      	         
            <select name="area">
            <option value="C01">almacén
            <option value="C02">sistemas
            <option value="C03">logistica
            </select>  <br/>
            
     <?php
            if ($_POST["area"] == "C01")
    {
    	$area = "telperu.com@gmail.com";
    	$email = "telperu.com@gmail.com";
    }
    else if ($_POST["area"] == "C02")
    {
    	$area = "telperulima@gmail.com";
    	$email = "telperu.com@gmail.com";
    }
    else if ($_POST["area"] == "C03")
    {
    	$area = "nmeza@bionaturista.com.pe";
    	$email = "telperu.com@gmail.com";
    }
      
     ?>
        
      
      <label for="email">Email</label> <input name="email" id="email" type="text" /><br />
        <label for="telefono">Telefono</label> <input name="telefono" id="telefono" type="text" /><br />
        <label for="mensaje">Mensaje</label> <textarea name="mensaje" cols="30" rows="6"></textarea><br />
        <label for="btsend">&nbsp;</label> <button name="btsend" id="btsend" type="submit">Enviar</button>
    </form>
    </body>
    </html>
      Votos: 0 - Link respuesta
     
  • Fecha: 10-07-2016 18:01:24 por favor no se que te refieras con select name, bueno me doy una idea pero se mas especifico, seguro te refieres a esto:

    <select name="area">
    <option value="C01">almacén
    <option value="C02">sistemas
    <option value="C03">logistica
    </select>
    <br/>


    perdon por no ponerlo de la otra forma pero es poco odigo para ponerlo ahi, primera que nada escribelo bien no se si al copiarlo se te paso esto: fijate como lo pongo que asi si se enviara datos:

    <select name="area">
            <option value="C01">almacén</option>
            <option value="C02">sistemas</option>
            <option value="C03">logistica</option>
    </select>
    


    ahora como te daras cuenta cierras las etiquetas para que no ocasione errores, y se envie las values corrienpondientes

    y 2: el action="" a que lugar va? ahi lo pusistes vacio, lo que hara es que recarge la pagina osea envias los datos mas no correctamente para que se envie todo absolutamente todo en la misma pagina has esto, en los actions:

    action="<?=$_SERVER['PHP_SELF'];?>"

    y seguramente solo se envia el email por que tu mismo lo definistes en codigp php :v
      Votos: 0 - Link respuesta
     
  • Fecha: 11-07-2016 07:12:06 Vaya pensé que mi código te había quedado claro para resolver tu pregunta.

    Yo te estoy enviando dos archivos, el primero tienes para seleccionar el destino y el segundo finalmente toma los datos y dispara lo que quieres, pero no estoy seguro que nivel de desarrollo tienes.

    Si requieres mayor apoyo me puedes escribir directamente para una mejor explicación del código.

    misterhch@gmail.com
      Votos: 0 - Link respuesta
     
  •  
      0  
     
    Fecha: 28-01-2020 10:19:15 Hola, tengo una duda, quiero cargar emails de una base de datos y enviarlos por un formulario pero no se como enviar el email a una variable ya que si lo hago como los demás campos no se envia, este es el código que tengo:

    <?php include "conn.php"; ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Envio de mensaje a prospecto</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <?php include("head.php");?>
    </head>
    <body>

    <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
    <div class="container">
    <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-inverse-collapse">
    <i class="icon-reorder shaded"></i></a><a class="brand" href="http://obedalvarado.pw/" target="_blank">CRM JOE´S</a>


    </div>
    </div>
    <!-- /navbar-inner -->
    </div><br />

    <div class="container">
    <div class="row">
    <div class="span12">
    <div class="content">
    <?php
    $id = intval($_GET['id']);
    $sql = mysqli_query($conn, "SELECT * FROM clientes WHERE id='$id'");
    if(mysqli_num_rows($sql) == 0){
    header("Location: index.php");
    }else{
    $row = mysqli_fetch_assoc($sql);
    }
    ?>

    <blockquote>
    Mensaje para prospecto
    </blockquote>


    <form id="formulario" method="post" action="maillocal02/php/enviar.php" enctype="multipart/form-data">

    <label>Id de Mensaje:</label><br>
    <input type="text" name="id" id="id" value="<?php echo $row['id']; ?>" placeholder="Id de Mensaje" class="form-control span8 tip" readonly="readonly">


    <label>Mensaje a:</label><br>
    <input type="text" name="nombres" value="<?php echo $row["nombres"]; ?>">

    <label>Enviado a:</label><br>

    <input type="email" name="<?php echo $row['email']; ?>" value="<?php echo $row["email"]; ?>">

    <label>Asunto:</label><br>
    <input class="text" name="asunto"><br>

    <label>Mensaje:</label><br>
    <input class="text" name="elmensaje"><br><br>
    <hr>
    <label>Adjuntar archivos:</label>

    <label>Archivo 01:</label><br>
    <input type="file" name="upload01" id="file01" /><br>


    <label>Archivo 01:</label><br>
    <input type="file" name="upload02" id="file02" /><br>


    <label>Archivo 01:</label><br>
    <input type="file" name="upload03" id="file03" /><br>


    <label>Archivo 01:</label><br>
    <input type="file" name="upload04" id="file04" /><br>
    <br>
    <br>

    <input id="submit" type="submit" name="enviar" value="Enviar mensaje">
    </form>

    </div>
    <!--/.content-->
    </div>
    <!--/.span9-->
    </div>
    </div>
    <!--/.container-->

    <!--/.wrapper--><br />
    <div class="footer span-12">
    <div class="container">
    <center> <b class="copyright"><a href="http:joescr.com"> JOE´S Diseño Web</a> &copy; <?php echo date("Y")?> Mensajes </b></center>
    </div>
    </div>

    <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script>


    </body>
    </html>
      Votos: 0 - Link respuesta
     
  • Fecha: 01-02-2020 00:25:22 Por lo que veo, creo que tu problema esta aqui;
    if ($_POST['email'] != "") {    // email de destino   
     $email = "telperu.com@gmail.com
    


    Si se cumple la condición de que el campo email no esta vacío, tu le asignas un valor fijo, con lo cual machacas su valor. Prueba asi:

    if ($_POST['email'] != "") {    // email de destino    
    $email = "telperu.com@gmail.com , " . $_POST['email'];
    
    

    Asi lo reenvias a las dos direcciones.

    Saludos

    Alfonso
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com