Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181

    Classe Phpmailer non invia email

    Ciao a tutti,

    sto provando ad implementare uno script che mi permetta di inviare una mail in formato html utilizzando la classe PHPMailer 5.2.0, ma non riesco ad inviare alcuna mail ed inoltre non mi permette di visualizzare l'eventuale errore dall'invio della mail(infatti visualizzo una pagina bianca).

    Ecco il codice:
    Codice PHP:

    // Classe per l'invio delle email
    require_once("class.phpmailer.php");

    //istanziazione della classe
    $mail = new PHPMailer();
    $mail->IsSMTP();
            

    //definizione delle intestazioni e del corpo del messaggio
    $mail->From "miomail@dominio.it";
    $mail->FromName "Cognome Nome";
    $mail->AddAddress("destinatario@dominio.it");
    $mail->IsHTML(true);  
    $mail->Subject "Oggetto email";
    $html_body "<html>
            <body>[b]Ciao Mondo[/b]</body>
              </html>"
    ;
    $mail->MsgHTML($html_body);
    $mail->AltBody("Ciao Mondo 2");
            

    //definizione dei comportamenti in caso di invio corretto o di errore
    if(!$mail->Send())
       {  echo 
    "Email non inviata
    "
    ;echo $mail->ErrorInfo."
    "
    ;  }
    else
       {  echo 
    "Email inviata
    "
    ;  }
                
            
    //chiusura la connessione
    $mail->SmtpClose();
    unset(
    $mail); 
    Grazie a tutti in anticipo per l'aiuto.

  2. #2
    Prova ad utilizzare il costrutto try catch per intercettare l'eventuale eccezione che si verifica:

    Codice PHP:
    // Classe per l'invio delle email
    require_once("class.phpmailer.php");

    //istanziazione della classe
    $mail = new PHPMailer();

    try {
        
    $mail->IsSMTP();        

        
    //definizione delle intestazioni e del corpo del messaggio
        
    $mail->From "miomail@dominio.it";
        
    $mail->FromName "Cognome Nome";
        
    $mail->AddAddress("destinatario@dominio.it");
        
    $mail->IsHTML(true);  
        
    $mail->Subject "Oggetto email";
        
    $html_body "<html><body>[b]Ciao Mondo[/b]</body></html>";
        
    $mail->MsgHTML($html_body);
        
    $mail->AltBody("Ciao Mondo 2");
            
        
    $mail->Send();
    } catch (
    phpmailerException $e) {
        echo 
    $e->errorMessage();
    } catch (
    Exception $e) {
        echo 
    $e->getMessage();
    }

    //chiusura la connessione
    $mail->SmtpClose();
    unset(
    $mail); 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Grazie mille per il suggerimento.

    Nemmeno con il try catch riesco a visualizzare i messaggi di errore. Probabilmente c'è qualche problema nella costruzione del body visto che quando l'ho lasciato vuoto mi ritornava "Body empty". Cosa ne dite?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Risolto.

    Il problema era nella seguente istruzione:

    Codice PHP:
    $mail->AltBody("Ciao Mondo 2"); 

    infatti modificandola in
    Codice PHP:
    $mail->AltBody "Ciao Mondo 2"
    Funziona tutto grazie mille per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.