Foros del Web » Programando para Internet » PHP »

envio de Correo

Estas en el tema de envio de Correo en el foro de PHP en Foros del Web. Hola a todos.. Tengo en mi pagina un formulario el cual tiene la informacion de clientes que realizaron una cierta solicitud, dicho formulario es mostrado ...
  #1 (permalink)  
Antiguo 28/11/2005, 12:41
 
Fecha de Ingreso: octubre-2005
Mensajes: 69
Antigüedad: 12 años, 1 mes
Puntos: 0
Exclamación envio de Correo

Hola a todos..

Tengo en mi pagina un formulario el cual tiene la informacion de clientes que realizaron una cierta solicitud, dicho formulario es mostrado al administrador del site, este administrador puede cambiar el estado del cliente de pendiente a procesado (el producto que solicito el cliente previamente), cuando el administrador salva los cambios los datos datos del formulario se envia a otra pagina para guardar la informacion en la BD (por medio del update) y se envia un correo tanto al cliente como al administrador.

Ahora bien el problema es el siguiente... cuando un cliente hace mas de una solicitud y el administrador cambia de status de ese cliente a procesado (las dos solicitudes que hizo el cliente son cambiadas de status), me arroja el siguiente error:

Warning: mail() [function.mail]: Failed to connect to mailserver at "mail.cantv.net" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\Inetpub\wwwroot\plusoffice\rent_admin_post.php on line 43

Unicamente es cuando se trata de enviar un correo a la misma direccion de correo.. ya que si cambio de status a mas de un cliente diferente (con email diferentes) realiza el envio de email perfectamente... Aqui les coloco el codigo que almacena en la base de datos y envia el correo....

rent_admin_post.php
Código PHP:
<?php 
    $cont 
$_POST["cont"];     //rent
    
$cont_buy $_POST["cont_buy"];  //compra
    
$N=0;
    
$N2=0;
    
$sdate date("Y")."/".date("m")."/".date("d");
    include(
'components/ip.php');  //optiene la IP se tiene en la variable $IP
    
$last_IP $IP;

    include(
'components/conection.php'); 

    if (!
$conexion) {
         echo 
"<center>En este momento no se puede conectar a la BD</center>";
         exit;
    } else {
    
    while (
$N <= $cont) {        /******** rent ******* */
        
        
$Nstring = (string)$N;
        
$valor="status".$Nstring;
        
$valor_id="id_rent".$Nstring;

        
$id_rent[$N]=$_POST[$valor_id];        //id del producto en la tabla rent
        
        
        
$status[$N]=$_POST[$valor];        //trae R o C, si es C es que cambio el status
        
        
if ($status[$N] == "C") { 
            
$cambio $status[$N];
            
$status[$N]="R";
            
pg_query($conexion"update rent set status ='".$status[$N]."', last_date='".$sdate."', ip_last='".$last_IP."'  where id_rent = '".$id_rent[$N]."'");

            
/* ***** enviar email ****** */
            
$result pg_query($conexion"select email, lastname from rent where id_rent = '".$id_rent[$N]."' and status='R' ");
            
$campo pg_fetch_array ($result);
            
$email $campo['email'];
            echo 
"elemail es ".$email;
            if (!
is_null($email)) {
                
$lastname $campo['lastname'];  //correo cliente

                
$subject="Solicitud de alquiler/compra a cambiado de status a procesado";
                
$text="Sr.(a): "$lastname" ha cambiado el status de su solicitud a procesado. PlusOffice";
                
mail($email,$subject,$text);  //email, subject, texto
    
                
$email_admin "[email protected]";  //email del administrador
                
$text="Administracion.  Cambio el status a procesado de la solicitud del Sr.(a): "$lastname".  PlusOffice";
                
mail($email_admin,$subject,$text);  //email, subject, texto
            
            
}
        }
        
$N++;
    }  
/* ***** fin while ***** */
//fin else conexion


include('components/endconection.php');

?>
<html><body>
<center><b><font color=blue>Los cambios se realizaron...<font></b></center>

<script language="JavaScript">
<!--

function change(){
    location.href="rent_admin.php";
}

//setTimeout('change()',500);

//-->
</script>
</body></html>
Gracias a todos...
__________________
Ana Martins
  #2 (permalink)  
Antiguo 28/11/2005, 13:14
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 12 años, 2 meses
Puntos: 56
Información Function SendMail

Hola, bueno al parecer el problema es en la configuración de tu servidor smtp dentro del archivo php.ini, si tienes acceso al él y puedes modificarlo asegúrate de que el servidor SMTP sea el correcto eso además del puerto 25, también es probable que tu server esté protegiendo el puerto.
Si deseas puedes usar esta función que utilizo para el envío de emails con soporte para html, no es necesario que las cuentas de respuesta existan pero sí las de recepción ($target).
Código PHP:
function SendEmail($nombre,$email){
        
$subject="Intranet STM - Verificación de cuenta";
        
$headers "MIME-Version: 1.0\r\n";
        
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        
//dirección del remitente, la puedes cambiar por la que desees
        
$headers .= "From: [email protected] \r\n";
        
//dirección de respuesta, si queremos que sea distinta que la del remitente
        
$headers .= "Reply-To: [email protected]\r\n";
        
//direcciones que recibirán copia oculta
        //$headers .= "Bcc: [email protected]\r\n"; 
        
$target=$email;
        
$text ="<font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#666666\">Hola,<b>$nombre.</b> <br>
                        Usted ha solicitado la asociaci&oacute;n de una contrase&ntilde;a a su DNI.<br>
    mail($target,$subject,$text,$headers);
//mail para el administrador
        $subject="
Intranet STM Anuncio de solicitud de contraseña";
        $headers = "
MIME-Version1.0rn";
        $headers .= "
Content-typetext/htmlcharset=iso-8859-1rn";
        $headers .= "
Fromservidor@mailserver.com rn";
        $headers .= "
Reply-Tonoresponder@mailserver.comrn";
        $target="
cuenta_admin@mailserver.com";        
        $text ="
<font face="Verdana, Arial, Helvetica, sans-serif\" color=\"#666666\">Hola,<br><b>$nombre</b> ha solicitado una contrase&ntilde;a para su DNI </font>";
        
mail($target,$subject,$text,$headers);
    } 
espero te sirva de ayuda
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:09.