Visualizzazione dei risultati da 1 a 3 su 3

Discussione: invio mail ciclico

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    invio mail ciclico

    Sto girando da un pò intorno al problema di inviare una newsletter in modo automatico.
    Su un sito precedente, dove i destinatari erano circa 500, non ho avuto alcun problema, e fa tutto in automatico.
    Adesso però devo gestire oltre 15.000 destinatari, e quindi il sistema utilizzato precedentemente va in palla...
    Ho cercato in rete, ma c'è solo roba piena di funzioni inutili, complessa, che mi porterebbe via molto tempo per ripulirla ... e poi vorrei trovare una soluzione da solo.
    Comunque, dopo tanto sbattere la testa, ho pensato di effettuare l'invio a blocchi di 100 email per volta; il modo più veloce, mi sembra(va), è quello di dire alla funzione "selezionami dal db gli indirizzi email da X a Y e fai l'invio".
    Finito l'invio, passo i nuovi valori X a Y e ricomincio da capo; e così via.
    I valori li passo automaticamente, nel senso che carico in un form il valore Y e lo ripasso alla pagina come valore X+1, mentre per avere Y aggiungo +100.
    É farraginoso, lo so, ma fa caldo è la testa fuma...
    Comunque, questo è il codice che uso per l'invio:
    Codice PHP:
    $result mysql_query("SELECT * FROM `test` ORDER BY `num` ASC LIMIT $start,$end");
    while (
    $row mysql_fetch_array($result)) {
        
    $mail $row["email"];
        
    $footer "\n\n-------------------------------------------------------------\nTo unsubscribe this news alert, go to:\n [url]http://www.mysite.com/remove.php?mail=[/url]" $mail;
    $msg $header $text $footer;
    $flag_success mail("$mail""$subject""$msg""From: $from");

    Ovviamente, le variabili $start e $end vengono passate correttamente, percho faccio un echo sulla pagina per controllarle, e sono quelle giuste.
    Però, facendo il test su una tabella di db con 15 mailboxes, fa dei doppi invii.
    Per essere più chiaro:
    se la lista è composta dalle mailboxes
    1) metainfo@metatad.it
    2) metaart@metatad.it
    3) test1@prova.com
    4) test2@prova.com
    5) test3@prova.com
    6) corsi@viawebinstitute.com
    7) info@magmart.it
    8) test4@prova.com
    9) test5@prova.com
    10) test6@prova.com
    11) metachannel@metatad.it
    12) metanews@metatad.it
    13) staff@viawebinstitute.com
    14) test7@prova.com
    15) test8@prova.com
    e se faccio un invio a tre per volta (0/3, 4/7, 8/11, etc..) e cambiando testo per verificare, le prime due ricevono solo la prima email, la 6, la 7 e la 11 ricevono la seconda email, la 6, la 11, la 12 e la 13 ricevono la terza, la 13 riceve la quarta email.
    Quindi le mailboxes 6, 11 e 13 ricevono due messaggi.
    É come se, alla terza ed alla quarta spedizione, ad ogni nuovo invio aggiungesse le mailboxes dell'invio precedente!
    Ma perchè?!... E perchè non lo fa già alla seconda?
    La testa fume/fonde...
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Forse sbagli l'uso di LIMIT:

    Il primo argomento di limit è l'offset da cui cominciare a prendere i record estratti dalla select e il secondo il numero di record da estrarre, per cui volendo rispettare il tuo approccio non devi mai aggiungere niente a Y, devi solo decidere quante email inviare alla volta (e sarà Y) e poi eseguire le query aumentando X (di Y+1)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    ooops!!!...
    l'ho detto che sono fuso!...

    Grazie...
    metatad
    graphic & web design

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.