Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Enviar email

Estas en el tema de Enviar email en el foro de PHP en Foros del Web. Buenas, estoy creando un checkeo automático de pagos IPN de Paypal, la cuestión es que todo funciona a la perfección a excepción del envio de ...
  #1 (permalink)  
Antiguo 29/09/2013, 09:30
Avatar de roal40  
Fecha de Ingreso: enero-2012
Mensajes: 61
Antigüedad: 14 años, 8 meses
Puntos: 4
Enviar email

Buenas, estoy creando un checkeo automático de pagos IPN de Paypal, la cuestión es que todo funciona a la perfección a excepción del envio de email. El código (de envio, no de todo el script) es el mismo que he usado en otro sitio, por lo que no se que pasa que no se envia.

Código PHP:
<?php  
include("../config/config.php");
  
// read the post from PayPal system and add 'cmd'  
$req = 'cmd=_notify-validate';  
foreach (
$_POST as $key => $value) {  
$value = urlencode(stripslashes($value));  
$req .= "&$key=$value";  
}  
// post back to PayPal system to validate  
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";  
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";  
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";  
  
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);  
if (!
$fp) {  
// HTTP ERROR  
} else {  
fputs ($fp, $header . $req);  
while (!
feof($fp)) {  
$res = fgets ($fp, 1024);  
if (
strcmp ($res, "VERIFIED") == 0) {
$period = '+1 month';
$email = $_POST['payer_email'];  
 
$date = date('d-m-Y');
 
$subscriptionrecordexists = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
    if (
mysql_num_rows($subscriptionrecordexists)){
        
$subscriptionrecord = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
        
$row = mysql_fetch_array($subscriptionrecord);
        
$currentvalidity = $row['date'];
        if (
strtotime($currentvalidity) >= strtotime($date)){
            
$newvalidity = date('d-m-Y', strtotime("$currentvalidity +1 month"));
            if(
mysql_query("UPDATE subscriptions SET date='$newvalidity' WHERE email='$email'")){
            
ob_start();
    
?>
    <strong>Thanks you for renew your subscription</strong> 
     <p>Your account has been extended for one month</p>
    <p>-------------------------</p>
    <?
    $resumen 
= ob_get_contents();
    
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
    
$email = $_POST['payer_email'];
    
$destino=mysql_escape_string($email);
    
$sheader= "From: ".$maill."\r\n";
    
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"; 
    
$sheader=$sheader."Mime-Version: 1.0\n"; 
    
$sheader=$sheader."Content-Type: text/html"; 
    
$asunto='Renew';
    
mail($destino,$asunto,$resumen,$sheader); 
        }
    }else{
            
$newvalidity = date('d-m-Y', strtotime("$date +1 month"));
            if(
mysql_query("UPDATE subscriptions SET date='$newvalidity' WHERE email='$email'")){
            
ob_start();
    
?>
    <strong>Thanks you for renew your subscription</strong> 
    <p>Welcome back!</p>
     <p>Your account has been extended for one month</p>
    <p>-------------------------</p>
    <?
    $resumen 
= ob_get_contents();
    
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
    
$email = $_POST['payer_email'];
    
$destino=mysql_escape_string($email);
    
$sheader= "From: ".$maill."\r\n";
    
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"; 
    
$sheader=$sheader."Mime-Version: 1.0\n"; 
    
$sheader=$sheader."Content-Type: text/html"; 
    
$asunto='Renew';
    
mail($destino,$asunto,$resumen,$sheader); 
        }
    }
    }else{
 function 
randomPassword() {
    
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    
$pass = array();
    
$alphaLength = strlen($alphabet) - 1;
    for (
$i = 0; $i < 8; $i++) {
        
$n = rand(0, $alphaLength);
        
$pass[] = $alphabet[$n];
    }
    return 
implode($pass);
}
    
$password=randomPassword();
      
$servidor=md5(time()+mysql_escape_string($email));
    
$newvalidity = date('d-m-Y', strtotime("$date +1 month"));
    
mysql_query("INSERT INTO subscriptions (email,date) VALUES('". mysql_escape_string($email) ."','$newvalidity') ") or die(mysql_error());
    
$subscriptionrecor = mysql_query("SELECT * FROM subscriptions WHERE email='$email'");
    
$roww = mysql_fetch_array($subscriptionrecor);
    
mysql_query("INSERT INTO config (servidor,idsubscription) VALUES('$servidor','$roww[id]') ") or die(mysql_error());
    if(
mysql_query("INSERT INTO users (nombre,apellidos,email,pass,fecha,grupo,firstlogin,level,servidor) VALUES('".mysql_escape_string($_POST['first_name'])."','".mysql_escape_string($_POST['last_name'])."','". mysql_escape_string($email) ."','".md5($password)."','$newvalidity','Admin','1','1','".$servidor."') ")){  
    
ob_start();
    
?>
    <strong>Thanks you for your purchase</strong> 
     <p>Your account information</p>
    <p>-------------------------</p>
    <p>Email: <?=mysql_escape_string($email)?></p> 
    <p>Password: <?=$password?></p>
    <p>-------------------------</p>
    <?
    $resumen 
= ob_get_contents();
    
$maill = "no-reply@".$_SERVER['SERVER_NAME']."";
    
$email = $_POST['payer_email'];
    
$destino=mysql_escape_string($email);
    
$sheader= "From: ".$maill."\r\n";
    
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"; 
    
$sheader=$sheader."Mime-Version: 1.0\n"; 
    
$sheader=$sheader."Content-Type: text/html"; 
    
$asunto='Purchase';
    
mail($destino,$asunto,$resumen,$sheader);  
}  
}
}
else if (
strcmp ($res, "INVALID") == 0) {  
  
}  
}
fclose ($fp);  
}  
?>
  #2 (permalink)  
Antiguo 29/09/2013, 10:24
Avatar de roal40  
Fecha de Ingreso: enero-2012
Mensajes: 61
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Enviar email

Lo solucioné con otro código.

Etiquetas: email, html, mysql, select, sql
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 04:33.