Foros del Web » Programando para Internet » PHP »

Problema en envio de Formulario con Mail a varias cuentas

Estas en el tema de Problema en envio de Formulario con Mail a varias cuentas en el foro de PHP en Foros del Web. Hola tengo un formulario que trabaja con Captcha que me funciona muy bien, pero me surgio un problema cuando, en la variable que contiene las ...
  #1 (permalink)  
Antiguo 25/07/2009, 08:42
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Problema en envio de Formulario con Mail a varias cuentas

Hola tengo un formulario que trabaja con Captcha que me funciona muy bien, pero me surgio un problema cuando, en la variable que contiene las cuentas de correo aunmente un correo más, es decir antes mandaba a solo dos cuentas, y ahora quiero mandar a tres cuentas y me sale error, a que se puede deber, Muchas Gracias.

Aqui esta un código que esta bien funciona correctamente
Cita:
<?
$email_recipient = '[email protected];[email protected]';

session_start();
error_reporting(0);
include("class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha = '';

if(isset($_REQUEST['Submit']) and $capt->check_result()){
$message_send = "Mensaje desde la página\n\n
Nombre: ".$_REQUEST['Nombre']." \n
E-mail: ".$_REQUEST['Correo']." \n
Comentario: ".$_REQUEST['Comentarios']." \n
Pagina: ".$_REQUEST['Pagina']." \n";

$headers .= 'To: <'.$email_recipient.'>' . "\r\n";
$headers .= 'From: '.$_REQUEST['Nombre'].' <'.$_REQUEST['Correo'].'>' . "\r\n";

if(mail($email_recipient, 'SOLICITUD DE INFORMACION PERU EXPEDITIONS '.$_REQUEST['Pagina'], $message_send, $headers))
header ("Location: http://www.peru-expeditions.com/c-gracias.html");
else
echo '<div style="color: red"><strong>Hubo un problema en el mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';
}

else{if(isset($_REQUEST['Submit']) and (!$capt->check_result()) )
echo '<div style="color: red"><b>Intente de nuevo. Actualizar:</b><a href="" onclick="write_captcha();"><img src="gifs/refresh.gif" border="0" alt="" /></a></div>';
}
?>
Este es el que me causa error (esta en otro idioma)
Cita:
<?
$email_recipient = '[email protected];[email protected];[email protected]';

session_start();
error_reporting(0);
include("class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha = '';

if(isset($_REQUEST['Submit']) and $capt->check_result()){
$message_send = "Menssagem da página\n\n
Nome: ".$_REQUEST['Nome']." \n
E-mail: ".$_REQUEST['Email']." \n
Comentarios: ".$_REQUEST['Comentarios']." \n
Web: ".$_REQUEST['Web']." \n";

$headers .= 'To: <'.$email_recipient.'>' . "\r\n";
$headers .= 'From: '.$_REQUEST['Nome'].' <'.$_REQUEST['Email'].'>' . "\r\n";

if(mail($email_recipient, 'SOLICITUDE DE INFORMAÇÃO PERU EXPEDITIONS '.$_REQUEST['Web'], $message_send, $headers))
header ("Location: http://www.peru-expeditions.com/p-gracias.html");
else
echo '<div style="color: red"><strong>Houve um problema no envio da menssagem. Favor enviar novamente</strong></div>';
}

else{if(isset($_REQUEST['Submit']) and (!$capt->check_result()) )
echo '<div style="color: red"><b>Tentar novamente. Atualizar:</b><a href="" onclick="write_captcha();"><img src="gifs/refresh.gif" border="0" alt="" /></a></div>';
}
?>
Despues de todo undía de romperme la cabeza comparando código para ver cual era mi error solo saque un correo y se mando el correo, habra una manera de mandar el correo a mas de dos cuentas?
  #2 (permalink)  
Antiguo 25/07/2009, 11:07
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Problema en envio de Formulario con Mail a varias cuentas

en ocaciones (que yo tambien desconozco) me ha dado problemas al enviar en "para" 3 o 4 contactos, yo lo que hago utilizao los campos CC y CCO dejando solo 1 en PARA

$principal="[email protected];";
$secundarios="[email protected];[email protected]";
$eol="\r\n";

$header .= 'From: '.$_REQUEST['Nome'].'<'.$_REQUEST['Email'].'>'.$eol;
$header .= "CC: ".$secundarios.$eol;
$header .= "Reply-To: ".$mail."".$eol;
$header .= "Return-Path: ".$mail."".$eol; // these two to set reply address
$header .= "Message-ID: <".time()."-".$para.">".$eol;
$header .= "X-Mailer: PHP v".phpversion().$eol; // These two to help avoid spam-filters
$header .= "MIME-Version: 1.0".$eol;
$header .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

mail($principal, 'SOLICITUDE DE INFORMAÇÃO PERU EXPEDITIONS '.$_REQUEST['Web'], $message_send, $header))


En tu caso paticular estas enviando
To: <'.$email_recipient.'>
To: <[email protected];[email protected];[email protected]>
creo que deberias quitar los <> ya que no es un solo correo sino 2 o 3 y estos simbolos "delimitan" solo 1

Aunque yo prefiero no usar ese parametro en las cabeceras

Suerte
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 27/07/2009, 08:27
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Gracias Avatar810 voy a probarlo, muchas gracias por responder

Hola Avatar810, primero probe quitando los "<>", pero no me resulto despues use el CC y estuvo muy bien gracias, pero ahora no reconoce los \n el mensaje llega en una sola línea, muchas gracias, habra algo que no he visto. esto llega a ser mi código
Cita:
<?
$email_principal = '[email protected]';
$email_secundarios = '[email protected];[email protected]';
$eol="\r\n";

session_start();
error_reporting(0);
include("class/captchaZDR.php");

$capt = new captchaZDR;
$wrong_captcha = '';

if(isset($_REQUEST['Submit']) and $capt->check_result()){
$message_send = "Menssagem da página\n\n
Nome: ".$_REQUEST['Nome']." \n
E-mail: ".$_REQUEST['Email']." \n
Comentarios: ".$_REQUEST['Comentarios']." \n
Web: ".$_REQUEST['Web']." \n";

$header .= 'From: '.$_REQUEST['Nome'].'<'.$_REQUEST['Email'].'>'.$eol;
$header .= "CC: ".$email_secundarios.$eol;
$header .= "Reply-To: ".$mail."".$eol;
$header .= "Return-Path: ".$mail."".$eol; // para establecer dirección de respuesta
$header .= "Message-ID: <".time()."-".$para.">".$eol;
$header .= "X-Mailer: PHP v".phpversion().$eol; // Estas dos para ayudar a evitar los filtros de spam
$header .= "MIME-Version: 1.0".$eol;
$header .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

if(mail($email_principal, 'SOLICITUDE DE INFORMAÇÃO PERU EXPEDITIONS '.$_REQUEST['Web'], $message_send, $header))
header ("Location: http://www.peru-expeditions.com/p-gracias.html");
else
echo '<div style="color: red"><strong>Houve um problema no envio da menssagem. Favor enviar novamente</strong></div>';
}

else{if(isset($_REQUEST['Submit']) and (!$capt->check_result()) )
echo '<div style="color: red"><b>Tentar novamente. Atualizar:</b><a href="#" onclick="write_captcha();"><img src="gifs/refresh.gif" border="0" alt="" /></a></div>';
}
?>
Y me podrias explicar un poco mas de esta líneas
Cita:
$header .= "Reply-To: ".$mail."".$eol;
$header .= "Return-Path: ".$mail."".$eol; // these two to set reply address
$header .= "Message-ID: <".time()."-".$para.">".$eol;
$header .= "X-Mailer: PHP v".phpversion().$eol; // These two to help avoid spam-filters
$header .= "MIME-Version: 1.0".$eol;
$header .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;
Mi duda es por que hay esta variable $para si no esta definido

Última edición por GatorV; 25/08/2009 a las 11:34
  #4 (permalink)  
Antiguo 27/07/2009, 11:05
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Problema en envio de Formulario con Mail a varias cuentas

Hola , un solo consejo creo que es mas conveniente que uses phpmailer , ya que te permite enviar adjuntos , enviar html y muchas cosas más con un par de lineas nada más.

te dejo el link http://phpmailer.sourceforge.net

Saludos!
  #5 (permalink)  
Antiguo 27/07/2009, 11:29
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Ok muchas Gracias Jonatanc, entrare al link.

Hola, tengo un código Php que he utilizado para mandar correos desde mi página (se enviaba a 3 cuentas) pero ahora que quiero aumnetar una cuenta mas ya no se puede, quiero dejar mi código para que me den algunas recomendaciones, tal vez esta pasando por alto algo. Muchas Gracias
Código PHP:
<?
        session_start
();
        
        
$email_principal     '[email protected]';
        
$email_secundarios     '[email protected];[email protected]'//Aqui quiero aumentar una cuenta de correo mas
        
$eol="\r\n";

        
error_reporting(0);
        include(
"class/captchaZDR.php");

        
$capt = new captchaZDR;
        
$wrong_captcha     '';

        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Menssagem da página<br><br>      
              Nome: "
.utf8_decode($_POST['Nome'])." <br>
              País: "
.utf8_decode($_POST['Pais'])." <br>
                Telefone: "
.utf8_decode($_POST['Telefone'])." <br>
              E-mail: "
.utf8_decode($_POST['Email'])." <br>
                Sexo: "
.utf8_decode($_POST['Sexo'])." <br>
                Idade: "
.utf8_decode($_POST['Idade'])." <br>
                Permanência: "
.utf8_decode($_POST['Permanencia'])." <br>
              Data: "
.utf8_decode($_POST['Data'])." <br>
                Como nos encontrou: "
.utf8_decode($_POST['Encontrou'])." <br>
                Comentários: "
.utf8_decode($_POST['Comentarios'])." <br>";
                foreach (
$_POST['Tour'] as $id){
                    
$message_send $message_send "Tour :" utf8_decode($id) . "<br>";
                 }

                
$headers .= 'From: '.$_POST['Nome'].'<'.$_POST['Email'].'>'.$eol;
                
$headers .= "CC: ".$email_secundarios.$eol;
                
$headers .= "Reply-To: ".$mail."".$eol;
                
$headers .= "Return-Path: ".$mail."".$eol;
                
$headers .= "Message-ID: <".time()."-".$para.">".$eol;
                
$headers .= "X-Mailer: PHP v".phpversion().$eol;
                
$headers .= "MIME-Version: 1.0".$eol;
                
$headers .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

            if(
mail($email_principal'SOLICITUDE DE INFORMAÇÃO ANDES PERU' $message_send$headers))
                        
header ("Location: http://www.andesperu.com/p-gracias.html");
                else 
                        echo 
'<div style="color: red"><strong>Houve um problema no envio da menssagem. Favor enviar novamente</strong></div>';  
        } 
        
        else{if(isset(
$_POST['Submit']) and (!$capt->check_result()) ) 
                echo 
'<div style="color: red"><b>Tentar novamente. Atualizar:</b><a href="#" onclick="write_captcha();"><img src="captcha/png_bank/refresh.gif" border="0" alt="" /></a></div>';
        }
?>

Última edición por GatorV; 25/08/2009 a las 11:35
  #6 (permalink)  
Antiguo 21/08/2009, 10:22
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Problema con php para enviar correos

Y cual es el error que marca?
  #7 (permalink)  
Antiguo 21/08/2009, 10:56
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Problema con php para enviar correos

El problema que me sale, es que no se nevia el formulario, y sale mi validación que dice Houve um problema no envio da menssagem. Favor enviar novamente que esta en mi código arriba
  #8 (permalink)  
Antiguo 21/08/2009, 10:59
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Problema con php para enviar correos

puedes pegar el codigo del formulario me tica que es aqui el problema
Submit o bien por el captcha....
por otro lado aprendamos a poner bien un if else, se que funciona poniendolo asi pero acostumbremonos a poner sus parentesis para saber donde comienza y termina cada consulta...

Código php:
Ver original
  1. if ($condicion)
  2. {
  3. ///
  4. }
  5. else
  6. {
  7. ///
  8. }
saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #9 (permalink)  
Antiguo 21/08/2009, 11:23
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 2
ok estoy poniendo de un formulario mas pequeño, solo manda un campo:
Código HTML:
<script type="text/javascript" src="captcha/p-funciones-solicitud.js"></script>
<script type="text/javascript" src="captcha/p-validar-formulario.js"></script>
<body onLoad="write_captcha()">
<form name="datos" id="datos" method="post" action="javascript:get(document.getElementById('datos'));" ><table>
<tr>
            <td width="25%"><span class="sttextnegro2">E-mail :</span></td>
            <td height="19" colspan="2"><input name="Email" type="text" class="stcajatexto" id="Email" size="26" maxlength="100" />
            </td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td height="19" colspan="2"><div id="captcha_id"></div></td>
          </tr>
          <tr>
            <td class="sttextnegro2">Resultado:</td>
            <td width="48%" height="19"><input type="text" name="capt" id="capt" class="stcajatexto" />
                <script type="text/javascript">document.write('<input name="Web" type="hidden" id="Web" value='+url+'>');</script></td>
            <td width="27%" height="19"><input name="Submit" type="submit" class="boton-enviar-p" id="Submit" value="" onClick="validate();return returnVal;"/></td>
          </tr>
        </table><span id="myspan"></span> 
Y la info se va a un js
Código HTML:
function get(obj) {
      var poststr = "Email=" + encodeURI( document.getElementById("Email").value ) +
                    "&capt=" + encodeURI( document.getElementById("capt").value )+			  
			  "&Submit=" + encodeURI( document.getElementById("Submit").value )+
				"&Web=" + encodeURI( document.getElementById("Web").value );
      makePOSTRequest('captcha/p-envio-index.php', poststr);
   }
y lo envia a mi php
Código PHP:
<?
        $email_principal     
'[email protected]';
        
$email_secundarios     '[email protected];[email protected]';
        
$eol="\r\n";

        
session_start();
        
error_reporting(0);
        include(
"class/captchaZDR.php");

        
$capt = new captchaZDR;
        
$wrong_captcha     '';

        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Menssagem da página<br><br>  
              E-mail: "
.utf8_decode($_POST['Email'])." <br>
                Info: "
.utf8_decode($_POST['Web'])." <br>";

                
$headers .= 'From: '.$_POST['Nome'].'<'.$_POST['Email'].'>'.$eol;
                
$headers .= "CC: ".$email_secundarios.$eol;
                
$headers .= "Reply-To: ".$mail."".$eol;
                
$headers .= "Return-Path: ".$mail."".$eol;
                
$headers .= "Message-ID: <".time()."-".$para.">".$eol;
                
$headers .= "X-Mailer: PHP v".phpversion().$eol;
                
$headers .= "MIME-Version: 1.0".$eol;
                
$headers .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

            if(
mail($email_principal'SOLICITUDE DE INFORMAÇÃO PERU EXPEDITIONS' $message_send$headers))
                        
header ("Location: http://www.peru-expeditions.com/p-gracias.html");
                else 
                        echo 
'<div style="color: red"><strong>Houve um problema no envio da menssagem. Favor enviar novamente</strong></div>';  
        } 
        
        else{if(isset(
$_POST['Submit']) and (!$capt->check_result()) ) 
                echo 
'<div style="color: red"><b>Tentar novamente. Atualizar:</b><a href="#" onclick="write_captcha();"><img src="captcha/png_bank/refresh.png" border="0" alt="" /></a></div>';
        }
?>
Aunque si aumneto un correo me sale que no se pudo enviar la info, pero si lo saco normal, no habra la manera tal vez de modificar mi código para no solo mandar a tres cuentas si no a mas de 4, gracias

Hola, no lo he podido resolver, sigo necesitando mandar el correo a varias cuentas mas que trs pero al colocar una cuarta cuenta (terceras en la variable $email_secundarios), sigue sin mandarlos, ¿tal vez no se coloca ; sino ,?ya probe pero nada alguna sugerencia por favor

Bueno ya lo resolvi, aumentando a mi variable cabecera
Cita:
$headers .= "Bcc: " .$email_oculto.$eol;
, espero no necesitar mandar correos a mas de 4 jejeje. gracias

Hola de nuevo, ahora me surgio el problema, que solo se puede mandar la info a solo tres cuentas si aumento una cuarta cuenta me sale Houve um problema no envio da menssagem. Favor enviar novamente
Así termino mi código:
Código PHP:
<?
        session_start
();
        
        
$email_principal     '[email protected]';
        
$email_secundarios     '[email protected];[email protected]';
        
$eol="\r\n";
        
        
error_reporting(0);
        include(
"class/captchaZDR.php");

        
$capt = new captchaZDR;
        
$wrong_captcha     '';

        if(isset(
$_POST['Submit']) and $capt->check_result()){        
              
$message_send "Menssagem da página<br><br>  
              E-mail: "
.utf8_decode($_POST['Email'])." <br>
                Info: "
.utf8_decode($_POST['Web'])." <br>";

                
$headers .= 'From: '.$_POST['Nome'].'<'.$_POST['Email'].'>'.$eol;
                
$headers .= "CC: ".$email_secundarios.$eol;
                
$headers .= "Reply-To: ".$mail."".$eol;
                
$headers .= "Return-Path: ".$mail."".$eol;
                
$headers .= "Message-ID: <".time()."-".$para.">".$eol;
                
$headers .= "X-Mailer: PHP v".phpversion().$eol;
                
$headers .= "MIME-Version: 1.0".$eol;
                
$headers .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

            if(
mail($email_principal'SOLICITUDE DE INFORMAÇÃO PERU EXPEDITIONS' $message_send$headers))
                        
header ("Location: http://www.peru-expeditions.com/p-gracias.html");
                else 
                        echo 
'<div style="color: red"><strong>Houve um problema no envio da menssagem. Favor enviar novamente</strong></div>';  
        } 
        
        else{if(isset(
$_POST['Submit']) and (!$capt->check_result()) ) 
                echo 
'<div style="color: red"><b>Tentar novamente. Atualizar:</b><a href="#" onclick="write_captcha();"><img src="captcha/png_bank/refresh.png" border="0" alt="" /></a></div>';
        }
?>
Hola Avatar en el ejemplo de arriba mandas solo a CC, quise aumentar mas correos con CCO creando una variable y aumentar una lineas de codigo pero no me salio, espero me puedas ayudar, pues me han mandado que se envie a siete correos pero solo me sale bien cuando se envia a tres gracias

Bueno ya lo resolvi, aumentando a mi variable cabecera
Cita:
$headers .= "Bcc: " .$email_oculto.$eol;
, espero no necesitar mandar correos a mas de 4 jejeje. gracias

Última edición por GatorV; 25/08/2009 a las 11:35
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:09.