Visualizzazione dei risultati da 1 a 10 su 10

Discussione: PHP Mailer

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59

    PHP Mailer

    Ciao,

    ho creato una pagina php (utilizzando phpmailer) che permette di inviare una mail ad un indirizzo mail inserito da un utente.

    dopo aver settato tutti i parametri che mi interessano invio la mail attraverso il comando:

    if($mail->Send()){
    echo"mail inviata con successo";
    }else{
    echo "errore";
    }

    Il problema e' che se inserisco una mail sintatticamente corretta ma che non esiste ottengo una schermata bianca e non il messaggio "errore", qualcuno sa aiutarmi?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, dovresti postare tutto il codice della pagina, così da avere un'idea più chiara e poterti aiutare meglio.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59
    if (!eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $email)){
    echo "Non e' stato inserito un indirizzo e-mail corretto";
    }else{
    $mail = new PHPMailer(true);
    $mail->IsSMTP(true);
    $mail->IsHTML(true);
    $mail->CharSet = 'UTF-8';
    $mail->Host = "smtp.sito.com";
    $mail->SMTPDebug = 0;
    $mail->SMTPAuth = true;
    $mail->Port = 25;
    $mail->Username = "user@mail.com";
    $mail->Password = "password";
    $mail->Priority = 3;
    $mail->AddBCC("mail@destinatario.com");
    $mail->Subject = "Oggetto";
    $mail->AltBody = "Abilita HTML";
    $mail->Body = "Codice HTML";

    if($mail->Send()) {
    echo "Mail inviata con successo";
    }else{
    echo "Errore";
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da AlexMGD
    if (!eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $email)){
    echo "Non e' stato inserito un indirizzo e-mail corretto";
    }else{
    $mail = new PHPMailer(true);
    $mail->IsSMTP(true);
    $mail->IsHTML(true);
    $mail->CharSet = 'UTF-8';
    $mail->Host = "smtp.sito.com";
    $mail->SMTPDebug = 0;
    $mail->SMTPAuth = true;
    $mail->Port = 25;
    $mail->Username = "user@mail.com";
    $mail->Password = "password";
    $mail->Priority = 3;
    $mail->AddBCC("mail@destinatario.com");
    $mail->Subject = "Oggetto";
    $mail->AltBody = "Abilita HTML";
    $mail->Body = "Codice HTML";

    if($mail->Send()) {
    echo "Mail inviata con successo";
    }else{
    echo "Errore";
    }
    Non usare eregi che è deprecato, usa il comodissimo FILTER_VALIDATE_EMAIL con filter_var()

    Per quanto riguarda l'errore prova con un try catch a gestire le eccezioni del phpmailer

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59
    grazie mille per il consiglio del filter_var(), mentre per le eccezioni potresti essere un po piu preciso?

    Grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da AlexMGD
    grazie mille per il consiglio del filter_var(), mentre per le eccezioni potresti essere un po piu preciso?

    Grazie mille
    Codice PHP:
    try{
    $mail = new PHPMailer(true);
    $mail->IsSMTP(true);    
    $mail->IsHTML(true);    
    $mail->CharSet 'UTF-8';    
    $mail->Host "smtp.sito.com";    
    $mail->SMTPDebug 0;    
    $mail->SMTPAuth true;    
    $mail->Port 25;    
    $mail->Username "user@mail.com";    
    $mail->Password "password";    
    $mail->Priority 3;    
    $mail->AddBCC("mail@destinatario.com");
    $mail->Subject "Oggetto";    
    $mail->AltBody "Abilita HTML";    
    $mail->Body "Codice HTML";

    echo (
    $mail->Send()) ? "Mail inviata con successo" "Errore";

    } catch (
    phpmailerException $e) {
      echo 
    $e->errorMessage();
    } catch (
    Exception $e) {
      echo 
    $e->getMessage();

    Prova cosi sennò dipende da qualcos'altro, i display_errors sono attivi?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59
    adesso ottengo come risultato:
    SMTP Error: The following recipients failed: mail@example.com

    credo che sia dovuto all'eccezione, pero non mi stampa "errore"

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59
    ho risolto mettendo "Errore" all'interno della catch
    i display_errors come si attivano?

    Grazie mille

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da AlexMGD
    ho risolto mettendo "Errore" all'interno della catch
    i display_errors come si attivano?

    Grazie mille
    Tramite il php.ini o ini_set ma sono per stampare a pagina gli errori riguardanti il php
    comunque non credo dipendeva da quello, ma dalla mancata gestione delle eccezioni
    perciò si puo dare per risolto?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    59
    si si,

    grazie mille!

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.