Foros del Web » Programando para Internet » PHP »

me llega doble correo!

Estas en el tema de me llega doble correo! en el foro de PHP en Foros del Web. Hola a Todos! tengo un formulario en HTML y PHP. El mismo está armado para que llegue como adjunto (.txt) en el mail. Pero luego ...
  #1 (permalink)  
Antiguo 15/11/2006, 08:02
Avatar de Il Dody  
Fecha de Ingreso: abril-2005
Ubicación: Argentina
Mensajes: 88
Antigüedad: 19 años
Puntos: 1
Exclamación me llega doble correo!

Hola a Todos!

tengo un formulario en HTML y PHP. El mismo está armado para que llegue como adjunto (.txt) en el mail. Pero luego de apretar el boton Enviar llegan a la casilla de correo dos mails iguales con la misma información.

Alguién sabe a que se puede deber. O donde puede estar el error: en el HTML o en el PHP?

Muchas gracias!
__________________
IL DODY
  #2 (permalink)  
Antiguo 15/11/2006, 08:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Pues podria ser error de PHP o de tu SMTP. Te sugiero que postees tu código que usas para enviar el mail.

Saludillos.
  #3 (permalink)  
Antiguo 15/11/2006, 09:15
Avatar de Il Dody  
Fecha de Ingreso: abril-2005
Ubicación: Argentina
Mensajes: 88
Antigüedad: 19 años
Puntos: 1
codigo PHP

bueno, el codigo en el archivo PHP es el siguiente:

<?php
$DescriptorFichero = fopen("Formulario.txt","w");
$string0 = "DATOS: " . "\r\n";
fputs($DescriptorFichero,$string0);
$string1 = "Operador: " . $HTTP_POST_VARS["Operador"] . "\r\n";
fputs($DescriptorFichero,$string1);
fclose($DescriptorFichero);
require "includes/class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = "*";
$mail->SMTPAuth = false;
$mail->Username = "*";
$mail->Password = "*";
$mail->From = "*@*.com";
$mail->FromName = "Formulario";
$mail->Timeout=50;
$mail->AddAddress("***");
$mail->Subject = "Formulario";
$mail->Body = "Se adjunta el archivo con los datos. \n";
$mail->AltBody = "";
$archivo ="Formulario.txt";
$archivo_name = "Formulario.txt";
if ($archivo !="none") {
$mail->AddAttachment($archivo,$archivo_name);
}
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
if(!$exito)
{
echo "Problemas enviando correo electrónico";
echo "<br>".$mail->ErrorInfo;
}
else
{
echo "<P>Mensaje enviado correctamente. <BR>
Gracias por contactarse</P>";
}
?>

Donde aparecen asteriscos van los datos reales. Espero q me puedan ayudar. Estoy trabada con esto.

Muchas gracias de antemano.
__________________
IL DODY
  #4 (permalink)  
Antiguo 15/11/2006, 09:29
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Sería interesante ver cómo está formada la función SendMail() que estará definida supongo que en inclues/class.phpmailer.php

Por lo que puedo ver, me da a mí que está dos veces escrita la operación de enviar el e-mail.

Cita:
if ($archivo !="none") {
$mail->AddAttachment($archivo,$archivo_name);
}
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
Quizá deberías borrar la segunda y dejarlo así:

Cita:
if ($archivo !="none") {
$mail->AddAttachment($archivo,$archivo_name);
}
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $mail->ErrorInfo;
$intentos=$intentos+1;
}
  #5 (permalink)  
Antiguo 15/11/2006, 09:38
Avatar de Il Dody  
Fecha de Ingreso: abril-2005
Ubicación: Argentina
Mensajes: 88
Antigüedad: 19 años
Puntos: 1
Sonrisa Gracias!

Te agradezco mucho David_M_G!!!!

Le saqué la segunda operación y ahora recibo un solo mail como necesito!

Muchas gracias de nuevo!

Slds.



PD: que bueno es saber q siempre hay alguién con ganas de dar una mano!
__________________
IL DODY
  #6 (permalink)  
Antiguo 21/11/2006, 12:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola a mi me pasa lo mismo solo que la funcion ya estaba hecha y no se por dond pillarla es un script en el cual en la configuracion se puede utilizar sendmail, smtp, o phpmail, si al enviar utilizo la funcion mail() lo envia bien sin duplicar pero si utilizo la funcion nmailer() lo envia duplicado

la funcion nmailer completa es esta
Código PHP:
require('includes/phpmailer/class.phpmailer.php');
function 
nmailer($recipient$subject$body$from$fromname$encode=0$cc=NULL$bcc=NULL$attachment=NULL ) {
    global 
$mailer$smtp_host$smtp_helo$smtp_port$smtp_auth$smtp_uname$smtp_passw$sendmail_path$adminmail$sitename;
    
$mail = new PHPMailer();

    
$mail->PluginDir 'includes/phpmailer/';
    
$mail->SetLanguage'es''includes/phpmailer/language/' );
    
$mail->CharSet     substr_replace(_ISO''08);
    
$mail->From     $adminmail;
    
$mail->FromName $sitename;
    
$mail->Mailer     $mailer;

    
// Add smtp values if needed
    
if ( $mailer == 'smtp' ) {
        
$mail->Host     $smtp_host;
        
$mail->Helo     $smtp_helo;
        
$mail->Port        $smtp_port;
        
$mail->SMTPAuth $smtp_auth;
        
$mail->SMTPKeepAlive true;
        if ( 
$smtp_auth  == 'true' ) {
            
$mail->Username $smtp_uname;
            
$mail->Password $smtp_passw;
        }        
        
    } else

    
// Set sendmail path
    
if ( $mailer == 'sendmail' ) {
        if (isset(
$sendmail_path))
            
$mail->Sendmail $sendmail_path;
    }

    
$mail->Subject     $subject;
    
$mail->Body     $body;

    
// activate HTML formatted emails
    
if ( $encode == '1' ) {
        
$mail->IsHTML(true);
        
$mail->AltBody    stripslashes($body);
    } else {
        
$mail->IsHTML(false);
    }

    if( 
is_array($recipient) ) {
        foreach (
$recipient as $to) {
            
$mail->AddAddress($to);
        }
    } else {
        
$mail->AddAddress($recipient);
    }
    if (isset(
$cc)) {
        if( 
is_array($cc) )
            foreach (
$cc as $to$mail->AddCC($to);
        else
            
$mail->AddCC($cc);
    }
    if (isset(
$bcc)) {
        if( 
is_array($bcc) )
            foreach (
$bcc as $to$mail->AddCC($to);
        else
            
$mail->AddCC($bcc);
    }
    if (
$attachment) {
        if ( 
is_array($attachment) )
            foreach (
$attachment as $fname$mail->AddAttachment($fname);
        else
            
$mail->AddAttachment($attachment);
    }
    
    
$mail->Send();
    if(
$mailer == 'smtp') {
        
$mail->SMTPClose();
    }
    
    
$debug_mode true// true = display errors on screen, false = don't display errors
    
if ($debug_mode == 'true'){
        if(!
$mail->Send())
        {
           echo 
"Message could not be sent. <p>";
           echo 
"Mailer Error: " $mail->ErrorInfo;
           exit;
        }
    }
    

Que podria ser?

Saludos
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 10:11.