Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    182

    [PHP] Errore nella funzione mail

    Ciao a tutti.
    Ho creato una newsletter in PHP che mi permette di mandare email prelevate da un database MySQL.
    Le mail sono tante, diverse migliaia.

    Per inviare l'email uso il seguente codice (tenendo conto del fatto che prima mi sono collegato al database):

    Codice PHP:
    while ($record mysql_fetch_array ($select))

        {

            if (    
    mail ($record['mail'], $_POST['oggetto'], $corpo

                
    "From: Nome Cognome\r\n" .

                
    "Reply-To: [email]info@nomecognome.it[/email]\r\n" .

                
    "Content-type: text/html; charset=utf-8\r\n")
                )
                { echo 
    "

    {$record['mail']}: inviata</p>"; }
            else
                { echo 
    "

    {$record['mail']}: fallita</p>"; }
        } 
    Le email vengono correttamente inviate, ma intorno alla 2000ima email che invia, ricevo l'errore sottostante: quale può essere il problema?
    codice:
    Maximum execution time of 120 seconds exceeded

  2. #2
    Secondo te cosa può voler dire un messaggio "Maximum execution time of 120 seconds exceeded"?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    182
    Originariamente inviato da filippo.toso
    Secondo te cosa può voler dire un messaggio "Maximum execution time of 120 seconds exceeded"?
    Se sapevo come risolvere il problema non l'avrei chiesto. Nessuno nasce imparato, se tu l'hai fatto ben per te.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    7
    Ciao,

    la maximum_execution_time è un parametro settabile dal file di configurazione di php (php.ini). Di default è impostata a 30 secondi.
    Ora i casi sono due: o hai la possibilità di accedere al file php.ini e modificare questo parametro (cosa che ti sconsiglio) oppure usi le funzioni ini_set di php per modificarne il valore.
    Ovviamente su certi hosting non sono abilitate per questioni di sicurezza degli script.

    Guarda questo link per la funzione che setta il time limit: set_time_limit()
    Qualora tu non possa modificare questo parametro, l'alternativa nello sviluppare una newsletter è quella di spezzare l'invio delle mail (chessò 500 o 1000 per volta).


  5. #5
    Sto solo cercando di farti usare la logica...

    Un messaggio che dice "Maximum execution time of 120 seconds exceeded" significa che il tuo non ha completato l'esecuzione entro il tempo limite a sua disposizione (120 secondi nel tuo caso).

    Potresti poter cambiare il limite utilizzando una funzione come http://www.php.net/set_time_limit .

    In alternativa potresti ristrutturare il codice in modo da inviare le email in gruppi di 100 (ad esempio) oppure potresti appoggiarti a cron per schedulare l'invio.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    182
    @filippo.toso: avevo intuito il problema, solo che non sapevo come risolverlo.

    Ad ogni modo, non posso avere accesso al file di configurazione di php (php.ini) - che è impostato dunque a 120 secondi. Quello che non ho capito è: cosa imposto con ini_set? Con ini_set posso modificare php.ini? Se sì, come imposto il nuovo valore?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    7
    La funzione è quella linkata sopra, come argomento prende un numero intero che indica i secondi.
    Come ti dicevo non è detto che sia possibile utilizzare questa funzione e comunque non modifica il file php.ini, cambia un valore di configurazione per la sola durata dello script.


  8. #8
    A mio avviso ti conviene anche sentire chi ti fornisce l'hosting.. Magari chiedendo ti possono modificare loro il parametro.

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.