Limite invio newsletter con PHP - mail()

Discussione in 'PHP' iniziata da z.cristiano, 15 Maggio 2017.

  1. z.cristiano

    z.cristiano Utente Attivo

    Registrato:
    16 Giugno 2007
    Messaggi:
    123
    Mi Piace Ricevuti:
    0
    Punteggio:
    16
    Buonasera,
    ho notato che nel mio DB MYSQL sono registrati 2.900 email per cui, sicuramente l'invio email con PHP MAIL non riesce a inviare completamente a tutti perchè regolarmente su ARUBA può inviare mi sa max 500/1.000 e-mail...

    C'è un modo o un codice PHP o qualcosa da configurare in modo che possa inviare tranquillamente ai tutti (2.900 email o superiore)?

    Mi pare di usare il codice

    <?php

    //800 secondi
    set_time_limit(800);

    ?>
     
  2. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.028
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    con set_time_limit setti il periodo di vita della script, di default 30 sec.
    poi tra un invio e l'altro ti conviene mettere sleep($secondi) altrimenti ingolfi il server
    comunque a parte i limiti di aruba ti consiglio di non inviare 2.900 email tutte insieme rischi di essere messo in qualche blacklist e per molto non puoi inviare più nulla, ti conviene suddividere in pacchetti (circa 200 email) da inviare al giorno, oppure rivolgerti a aziende specializzate
     
  3. z.cristiano

    z.cristiano Utente Attivo

    Registrato:
    16 Giugno 2007
    Messaggi:
    123
    Mi Piace Ricevuti:
    0
    Punteggio:
    16
    Ahhh ecco...

    Non lo sapevo che non si possa inviare più di 1.000 email e cmq, ho un'idea e vedi se è giusto e potrebbe funzionare..

    Faccio un codice MYSQL_NUM_ROWS e con la IF uguale a 200, aggiorna in GRUPPO_1, poi altri 200 GRUPPO_2, etc

    Infine quando clicco INVIA NEWSLETTER il sistema dovrebbe essere così

    PHP:
    $query "SELECT * FROM newsletter GROUP BY tipo_gruppo";
    $select mysql_query($query);
    while(
    $result mysql_fetch_array($select))
    {
    $queryEmail "SELECT * FROM newsletter WHERE tipo_gruppo='"$result['tipo_gruppo'] ."'";
    $selectEmail mysql_query($queryEmail);
    while(
    $resultEmail mysql_fetch_array($selectEmail))
    {
    $to $resultEmail['email'];
    mail($to$messaggioheader);
    sleep(50);
    }
    }
    Che dici?
    Oppure, mi consigli vivamente di utilizzare inviando manualmente 200 email ogni 2 ore?
     
    Ultima modifica di un moderatore: 16 Maggio 2017
  4. borgo italia

    borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD

    Registrato:
    4 Febbraio 2008
    Messaggi:
    16.028
    Mi Piace Ricevuti:
    146
    Punteggio:
    63
    Sesso:
    Maschio
    Località:
    PR
    Home Page:
    ciao
    ci do un occhio meglio, per ora mi salta all'occhio quello sleep(50), 50 sec tra un invio e l'altro mi sembrano troppo dai solo 1 o 2 sec.

    poi sfortunatamente si parla non di 200/h, ma 200/gg
     
  5. z.cristiano

    z.cristiano Utente Attivo

    Registrato:
    16 Giugno 2007
    Messaggi:
    123
    Mi Piace Ricevuti:
    0
    Punteggio:
    16
    Ok grazie mille..

    Anche perchè, alcuni SERVER (non di ARUBA) riescono a inviare newsletter illimitato e forse qualcosa va configurato sul PHP.INI o HTDCOS o qualcosa..

    Fammi sapere e grazie ancora
     
    Ultima modifica: 16 Maggio 2017
Sto caricando...

Condividi questa Pagina