Foros del Web » Programando para Internet » PHP »

no QUIERE enviar email :(

Estas en el tema de no QUIERE enviar email :( en el foro de PHP en Foros del Web. Hola amigos esto parece de chiste, he creado una lista de correo, donde tu te das de alta y te manda un correo de confirmacion, ...
  #1 (permalink)  
Antiguo 11/10/2004, 10:10
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 5 meses
Puntos: 0
no QUIERE enviar email :(

Hola amigos esto parece de chiste, he creado una lista de correo, donde tu te das de alta y te manda un correo de confirmacion, todo funciona excepto que no manda correo alguno, he querido enviar un correo si se cumple la opcion de alta y otro si es la opcion de baja
Código PHP:
// Codigo de alta Si pongo antes de este codigo enviar el email lo hace bien
// si no, no envia nada y si imprimo las varibles estas bien
// Añadimos el e-mail o lo borramos
    
if ($_POST['accion']=='1'){
        
$sql "INSERT INTO boletin_subs (email,fecha) VALUES('".$_POST ['email']."',now())";
        
$res mysql_query ($sql) or die (mysql_error());
        
        
// enviamos el email
        
$sfrom="[email protected]"//cuenta que envia
        
$sdestinatario="'".$_POST ['email']."'"//cuenta destino
        
$ssubject="Bienvenido al boletin DeRelax.com"//subject
        
$shtml="<p>
        Email: '"
.$_POST ['email']."'<br>
        Eres: '"
.$_POST ['Eres']."'<br>
        Sexo: '"
.$_POST ['sexo']."'<br>
        Nos has conocido: '"
.$_POST ['conoce']."'<br>
        Opinion: '"
.$_POST ['opinion']."'
        </p>"
//Texto bienvenida
        
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
        
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
        
$sheader=$sheader."Mime-Version: 1.0\n";
        
$sheader=$sheader."Content-Type: text/html";

        
$result mail($sdestinatario,$ssubject,$shtml,$sheader);

        if (
$result){
        echo 
"OK<br>";
        echo 
"$sdestinatario - $shtml - $result"// lo imprime todo correcto!!        }else{
        
echo ""// Error no se apuntado
        

__________________
Seguro que ahora me sale mejor!
  #2 (permalink)  
Antiguo 11/10/2004, 10:30
Avatar de chuscazo  
Fecha de Ingreso: abril-2004
Mensajes: 84
Antigüedad: 20 años
Puntos: 0
Hola
No se si sera eso pero prueva a pasar las variables que metes entre el texto del mail mediante un eval. Por ejemplo:

$sdestinatario=eval($_POST ['email']); //cuenta destino
$shtml="<p>
Email: '".eval($_POST ['email'])."'<br>
Eres: '".eval($_POST ['Eres'])."'<br>
Sexo: '".eval($_POST ['sexo'])."'<br>";

A mi paso algo parecido y si imprimia las variables se que me salian bien. Aunque si dices que si pones el codigo antes de dar el alta si manda el mail y si lo pones despues no. Puede que el mysql_query retorne error y por lo que sea no te lo muestre en pantalla.
No se si te valdra de algo el consejo.

Suerte.
  #3 (permalink)  
Antiguo 11/10/2004, 10:40
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 5 meses
Puntos: 0
Hola de la manera que me comentas me da parse error.
El MySql si que funciona se ingresan los datos en la base de datos, e incluso he puesto despues de enviar el supuesto email que este el ingreso de los datos.
gracias de todas formas.
__________________
Seguro que ahora me sale mejor!
  #4 (permalink)  
Antiguo 11/10/2004, 13:36
 
Fecha de Ingreso: julio-2004
Mensajes: 114
Antigüedad: 19 años, 8 meses
Puntos: 0
email

Prueb cambiando este codigo:

$sdestinatario="'".$_POST ['email']."'"; //cuenta destino


$email_a="[email protected]"; //coloca un email tuyo directamente para ver si es el paso de variable el que esta afectando.

$sdestinatario=$email_a;
  #5 (permalink)  
Antiguo 11/10/2004, 15:09
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 5 meses
Puntos: 0
Cita:
Iniciado por dannym
Prueb cambiando este codigo:

$sdestinatario="'".$_POST ['email']."'"; //cuenta destino


$email_a="[email protected]"; //coloca un email tuyo directamente para ver si es el paso de variable el que esta afectando.

$sdestinatario=$email_a;
eso lo hice lo primero, y no, ademas si pongo un echo al final del email, aparece bient odos los campos aunque ponga todas las variables asi:
$mail_user=$_post['email'];
$pais_user=$_post['pais'];
Tampoco funciona es algo muy extraño, no se si tendra que ver con la funcion mail() que no puede estar en una variable asi.
Gracias

PD: Cluster!!!
__________________
Seguro que ahora me sale mejor!
  #6 (permalink)  
Antiguo 12/10/2004, 04:40
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 22 años, 5 meses
Puntos: 0
La sin razon

Solucionado, para que funcione creo una function:
Código PHP:
function mescribo($aquien,$carta,$asun){
        
        
$sfrom="[email protected]"//cuenta que envia
        
$sdestinatario="$aquien"//cuenta destino
        
$ssubject="$asun"//subject
        
$shtml="<p>$carta</p>"//Texto bienvenida
        
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
        
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
        
$sheader=$sheader."Mime-Version: 1.0\n";
        
$sheader=$sheader."Content-Type: text/html";

        
$manda mail($sdestinatario,$ssubject,$shtml,$sheader);
return 
$manda;

Y desde mi codigo le paso los parametros

Código PHP:
// Añadimos el e-mail o lo borramos
    
if ($_POST['accion']=='1'){
        
$sql "INSERT INTO boletin_subs (email,fecha) VALUES('".$_POST ['email']."',now())";
        
$res mysql_query ($sql) or die (mysql_error());
        
        
// Funcion que envia mail de bienvenida
        
$asun "Bienvenido al boletin DeRelax.com";
        
mescribo($_POST ['email'],Hola,$asun);

Tiene sentido que sin la function no funcione ¿? lo tiene ahora que si funciona siendo lo mismo ¿? hay vida despues de la vida ¿?.
__________________
Seguro que ahora me sale mejor!
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 21:41.