Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - PHPMailer termina l'esecuzione dello script
Forum - PHP - PHPMailer termina l'esecuzione dello script

Avatar
00bullo00 (Normal User)
Newbie


Messaggi: 17
Iscritto: 19/09/2010

Segnala al moderatore
Postato alle 13:00
Domenica, 05/08/2012
Salve a tutti, ho un problema con PHPMailer: praticamente ho una pagina PHP che usa lo script PHPMailer per inviare email di conferma registrazione. Il problema è che a volte carica per un minuto la pagina (quindi oltre il timeout del php) per poi terminare l'esecuzione del codice php senza alcun messaggio di errore. Si comporta praticamente come un timeout del PHP ma senza alcun errore (il timeout normalmente mostra un fatal error).

A qualcuno di voi è già capitato? Quale potrebbe essere il problema?

Il codice è questo:

Codice sorgente - presumibilmente Php

  1. require_once("/Script/class.phpmailer.php");
  2.      $mail = new PHPMailer();
  3.      $mail->IsSMTP();
  4.      $mail->SMTPAuth = true;
  5.      $mail->Host = $SMTP;
  6.      $mail->Port = $Porta;
  7.      $mail->Username = $Username;
  8.      $mail->Password = $Password;
  9.      $mail->From = $IndirizzoMittente;
  10.      $mail->FromName = $NomeMittente;
  11.      $mail->AddAddress($Email1);
  12.      $mail->WordWrap = 60; // a capo dopo 60 caratteri
  13.      $mail->IsHTML(true); // invio mail in formato HTML
  14.      $mail->Subject = $Oggetto;
  15.      $mail->Body = "Messaggio";
  16.          $Esito=$mail->Send();
  17.          $mail->SmtpClose();
  18.          if ($Esito==true)
  19.            {
  20.              echo("L'email è stata inviata");
  21.              $mail->close();
  22.            }
  23.          else
  24.            {
  25.              echo(Errore:". $mail->ErrorInfo);
  26.              $mail->close();
  27.       }



Grazie in anticipo.

PM Quote
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Segnala al moderatore
Postato alle 14:51
Domenica, 05/08/2012
ma hai abilitato error_reporting?
mettigli un E_ALL così vedi cosa genera l'errore

PM Quote
Avatar
00bullo00 (Normal User)
Newbie


Messaggi: 17
Iscritto: 19/09/2010

Segnala al moderatore
Postato alle 16:02
Domenica, 05/08/2012
Non l'avevo fatto, comunque non ha dato risultati. Comunque ho provato a causare volontariamente il timeout con un ciclo infinito su un altra pagina, e li l'errore lo segnala dopo 30 secondi. Qui invece si ferma dopo un minuto e pagina completamente bianca.
Neanche la try-catch sulla funzione di invio restituisce errori.

PM Quote
Avatar
00bullo00 (Normal User)
Newbie


Messaggi: 17
Iscritto: 19/09/2010

Segnala al moderatore
Postato alle 17:11
Domenica, 05/08/2012
Come non detto: ho rimesso una versione del codice che sicuramente funzionava, ho inviato un email con quella ed ha funzionato, poi ho rimesso il codice che ho messo qui ed ora funziona. Non capisco proprio quale era il problema (sperando non lo rifaccia) ma penso sia un bug dello script.

Grazie comunque.

PM Quote
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Segnala al moderatore
Postato alle 20:47
Domenica, 05/08/2012
Dev'essere un timeout della connessione, prova a mettere un limite molto basso (tipo 5 secondi) e guarda come va

PM Quote
Avatar
00bullo00 (Normal User)
Newbie


Messaggi: 17
Iscritto: 19/09/2010

Segnala al moderatore
Postato alle 11:14
Lunedì, 06/08/2012
In realtà il limite è 30 secondi, ma lo script blocca l'esecuzione del codice php dopo 1 minuto (l'ho cronometrato). Inoltre quando va in timeout solitamente mostra un errore, qua si blocca l'esecuzione e basta. Ho provato infatti con un testo da stampare sulla pagina prima e dopo l'istruzione per inviare l'email di phpmailer: il messaggio appena precedente viene stampato, quello dopo no.

PM Quote