epelpad

[✓][PHP][Mail] Phpmailer duplica mensaje

Tengo este código, para enviar mensajes con el PhpMailer

Pero resulta que lo envía 2 veces en vez de una, y no se porque puede ser.

A ver si me pueden dar una mano con esto



$objetoCorreo = new PHPMailer; // Creamos un objeto para enviar correos

$objetoCorreo->setLanguage('es', '/ClassPHP/language/');

    

    $objetoCorreo->isSMTP(true); // Aquí se activaría el SMTP.
    $objetoCorreo->Host = 'smtp.live.com'; // Estableceríamos el nombre del servidor SMTP.
    $objetoCorreo->SMTPAuth = (true); // Estableceríamos la autentitificación por SMTP
    $objetoCorreo->SMTPSecure = 'tls'; // El protocolo de seguridad puede ser tls o ssl.
    $objetoCorreo->Port = 587; // Estableceríamos el puerto de conexión.
 
 
 
    // Establecemos nuestros datos de correo.
    $objetoCorreo->Username = '************@hotmail.com'; // Nuestra cuenta de correo.
    $objetoCorreo->Password = '***********'; // Nuestra contraseña.
 
    $objetoCorreo->setFrom('**********@**********', '**********'); // El remitente
    $objetoCorreo->addAddress('**********@**********', 'Carlos'); // El destinatario
    $objetoCorreo->addReplyTo('**********@**********', '**********'); // La cuenta de respuesta
 


    $objetoCorreo->isHTML(true); // Indicamos que el correo va a ser HTML.
    $objetoCorreo->charset=8859-1; // El correo irá codificado en UTF-8, para evitar problemas con letras acentuadas y otros caracteres especiales.
 
    $objetoCorreo->Subject = 'Correo de pruebas'; // Indicamos el asunto
 
    /* Incluimos el cuerpo del correo en una variable. Como puedes ver, es contenido HTML puro y duro,
    con algo de CSS. */


    $correo = "<div style='width:90%; border:4px ridge blue; padding:6px;'>";
    $correo .= "<h1>Mensaje para ti</h1>";
    $correo .= "</div>";
    $correo .= "<img src='cid:logo_php' align='left' border='0' hspace='10' />"; // OJO con la imagen. Hablaremos de esto en el próximo apartado.


    $correo .= "Este es un mensje para ti.<br />";
    $correo .= "En él puedes ver:";
    $correo .= "<ul>";
    $correo .= "<li>Ver un correo en HTML</li>";
    $correo .= "<li>Comprobar las funcionalidades de PHPMailer</li>";
    $correo .= "<li>Contactar con nosotros <a href='http://eldesvandejose.com/contacta-con-nosotros/' target='_blank'>aquí</a></li>";


    $correo .= "<li>Registrarte en la página <a href='http://eldesvandejose.com/register/' target='_blank'>aquí</a></li>";

    $correo .= "</ul>";
    // En nuestro correo incluimos hasta un formulario.

    $correo .= "<form action='mailto:[email protected]' method='post'>";
    $correo .= "<br /><br /><br /><br />";

    $correo .= "Tu nombre: ";

    $correo .= "<input type='text' name='nombre' size='20' style='border: 1px solid blue; font-size:12px; font-familiy:Arial;' /><br /><br />";

    $correo .= "Tu opinión:<br />";

    $correo .= "<textarea name='opinion' cols='60' rows='10' style='border: 1px solid blue; font-size:12px; font-familiy:Arial; resize:none;'></textarea>";

    $correo .= "<br /><br />";

    $correo .= "<input type='submit' value='Enviar' style='border: 1px solid blue; font-size:12px; font-familiy:Arial;' />";

    $correo .= "</form>";
 
    // Ponemos el correo que hemos diseñado como cuerpo. 
    $objetoCorreo->Body = $correo;
 
    // Alternativa por si el destinatario no acepta correos HTML.
    $objetoCorreo-> AltBody =  'Tu programa de correo no acepta HTML. No sabes lo que te estás perdiendo. Visitanos en www.eldesvandejose.com.';
    
    echo "<pre>";

    if(!$objetoCorreo->send()) {
        echo 'No se pudo enviar el mensaje';
        echo 'Detalles del error: '.$objetoCorreo->ErrorInfo;
    } else {
        echo 'Se ha enviado el mensaje';
    } 


5 comentarios - [✓][PHP][Mail] Phpmailer duplica mensaje

ElestudianteFantasma
Manda 2 veces el mismo mensaje en un email al remitente? (Le llega un email con el mensaje repetido)

O

Manda 2 mensajes iguales en en un email por mensaje al mismo remitente ? ( Le llegan 2 correos a un mismo email)

¿que código usas para la función?
Rata1960 +1
Le llega 2 veces el mismo mail al mismo remitente.
El codigo completo es el que está arriba.
para poder probarlo lo deje destinatario fijo
Rata1960
Lo que se ejecuta 1 vez es la ultima linea
echo 'Se ha enviado el mensaje';
ElestudianteFantasma
es raro, pero podrias probar lo siguiente
tu tienes esto


if(!$objetoCorreo->send()) { 
        echo 'No se pudo enviar el mensaje'; 
        echo 'Detalles del error: '.$objetoCorreo->ErrorInfo; 
    } else { 
        echo 'Se ha enviado el mensaje'; 
    } 



cambia eso por esto



$Estado = $objetoCorreo->send(); 
//Con esto, enviamos el correo y le asignamos un valor boleano al Estado//
if(!$Estado ) { 
//Si el estado es falso, envia un mensaje de error/
        echo 'No se pudo enviar el mensaje'; 
        echo 'Detalles del error: '.$objetoCorreo->ErrorInfo; 
    } else { 
        echo 'Se ha enviado el mensaje'; 
    } 

Rata1960 +1
@ElestudianteFantasma Hola amigo, recien hoy pude volver a trabajar sobre el tema.
El problema es muy loco, tengo una pagfina de indice donde llamo a ejecutar el archivo de correo. Cuando la uso manda los 2 mails.
Pero si el archivo lo ejecuto escribiendo la direccion exacta en el navegador lo manda Perfectamente
Esto es para suicidarse
ElestudianteFantasma
@Rata1960
me suena a un gran bug o a que el archivo se esta llamando 2 veces
¿como lo estas implementando?
Rata1960 +1
@ElestudianteFantasma No tuve tiempo de resolverlo , pero me parece que es por esto.


<a href="indexcabz.php"><button  class="submit" type="button" onClick="location.href='enviocabz.php'"><font color="green">Suscrip. Caballerizas</button></font></a>


yo lo llamo desde ahí, y me parece que el doble href para el explorer podría estar jodiendo, no es lógico pero me parece que viene por ahi la cosa. Igualmente cuando lo defina te cuento
wyxx
@rata1960 Si el servidor no es tuyo, poco podrás hacer para checar ese problema desde linux, supongo que el server es linux.

Intenta con la función nativa...
Rata1960
Hoy los tecnicos lo probaron y dicen que funciona bien
ElestudianteFantasma
¿lo probaste con otro navegador como vivaldi o crhome?
veo que ese boton esta enlazando 2 archivos de php ¿alguno de esos archivos esta llamando al otro?
Rata1960 +1
@ElestudianteFantasma Ya elimine en todos los botones el 2º link
Tienes que ser miembro para responder en este tema