Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150

    Indecisione su newsletter

    Salve a tutti ragazzi, mi servirebbe più che una mano un parere...

    Vi illustro la situazione che in se è molto semplice.

    Sto costruendo un pannello di gestione newsletter e sono arrivato al momento di gestire l'invio mail.
    Considerando che si tratta di un numero non molto corposo di indirizzi (sull'ordine dei 2500) volevo avere consigli sul metodo di invio.

    Il pannello andrà hostato su un server che non ha un server mail smtp, ma solo il server Apache.
    La classe che volevo utilizzare è phpmailer ma la mia indecisione sorge nel metodo di invio mail per quanto riguarda i contatti.

    Esempio 1: Gruppi di 50 per volta massimo e inserirli nei BCC ?

    Esempio 2: Creare un ciclo con due indici: $i conta fino a 50, quando arriva a 50 c'è uno sleep di qualche secondo e poi riprende da zero, mentre $j in un ciclo che raggruppa quello che ha indice $i che conta fino al mysql_num_rows totale in pratica.

    Per intenderci

    codice:
    $tot = "Totale indirizzi trovati";
    $j =1;
    while ($j<=$tot){
    $i = 0;
      for ($i=0; $i<=50; $i++){
    //Esegui l'invio mail per per ogni indirizzo trovato fino a 50
    $j++;
      }
    
    } 
    
    // Tutto questo molto sommariamente dicimo....

    Questi sono i due casi (almeno a mio avviso)

    Ultimo dubbio, questa operazione chiudendo il browser si stopperebbe giusto ?

    Attendo risposte fiduciuoso...

    Grazie mille in anticipo.
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  2. #2
    se non vuoi avere problemi (il browser viene chiuso etc), fai un unico ciclo ed utilizza Cron. Cosi fa lui la richiesta.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Ciao Alex, scusa se rispondo solo ora ma sono stato impossibilitato a connettermi, ti ringrazio per la dritta solo che non so come "interfacciare" cron con lo script di invio mail.

    Ora provo a cercare qualcosa su google, nel caso mi sapresti dare qualche informazione in più ? non intendo che devi scrivermi il codice ma un'infarinatura del concetto di unione di cron + invio mail con phpmailer


    Ti ringrazio ancora
    Saluti
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    In primis devi essere sicuro che il server che ti hosta ti dia a disposizione il cron.

    In secundis per controllare le operazioni devi farlo a database .
    Cron lancia degli script ma non necessariamente il loro operato e' "controllabile" a meno che lo script cron stesso non esegua dei log o delle modifiche al db.


    io farei cosi'

    1- tabella email
    2- tabella utenti
    3- tabella di relazione email_utenti(per tracciare chi, quando e quante volte e' stato raggiunto)

    4- script cron che prende l'email X controlla gli utenti
    4.1- avvia il ciclo e se un utente e' gia' stato raggiunto non inviare l'email.
    4.2- esegui il ciclo n volte facendo attenzione ai timeout(ma che ti vada lo puoi modificare hoster permettendo con una chiamata al php_ini( par , tempo )
    4.3- ad ogni iterazione aggiorna la tabella di riferimento

    5- script di controllo invio newsletter
    5.1- controlla la tabella di relazione


    NOTA: se vuoi controllare meglio eventualmente crea una tabella o file di log dove lo script scrive il suo stato(sleep,running) , quante op ha fatto, cosa ha spedito e a chi e se ha spedito correttamente.

    IMPORTANTE: crea una casella ove redirigere eventuali "failures" quindi le mail dovranno avere il return path settato per i messaggi di fallito instradamento delle email cosi' puoi anche tenere d'occhio gli indirizzi attive e quelli no aggiornando di conseguenza la tabella utenti .

    Penzaci

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Ciao Virus sei stato davvero gentilissimo, adoro gli algoritmi in linguaggio naturale XD

    Ad ogni modo per ora l'ho realizzata usando il ciclo che avevo specificato io, sembra inviare correttamente tutto (ovviamente non ho provato su tutti i 2500 indirizzi)
    Calcola che comunque la newsletter è gestita manualmente dalle mie colleghe, quindi per ora, e sottolineo per ora, credo che la utilizzeranno così come l'ho fatta.
    Ciò non toglie che con la tecnica dei raffinamenti successivi, questa tua "guida" mi sarà molto utile per implementarla meglio.

    Comunque per spiegarmi meglio ho creato la NL sull'idea di SendBlaster, ovvero:

    Creo lista NL
    Aggiungo tot utenti alla Lista
    Compongo Mail
    Aggiungo Mail alla Lista NL
    Specifico FROM
    Specifico il FROMNAME
    Specifico l'indirizzo per errori
    Invio con ciclo annidato

    Giusto per specificare come l'ho fatta, tutto qui

    Ad ogni modo, grazie davvero a entrambi
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Nessun prob


    Ho implementato una soluzione simile giusto per comodità.


    CMq l'unico limite alla tua soluzione e' il tempo di timeout degli script.
    Mi spiego meglio, dipende dalla configurazione di php e apache.
    Puoi impostare un tempo massimo di esecuzione per uno script in modo che in qualsiasi evenienza(loop infinito ricorsioni violente etc...) lo script abbia sempre termine.

    Questo valore temporale e' impostato per tutto il server, e se l'invio di 2500 mails circa ci mette troppo tempo lo script termina a tempo x in uno stato non prevedibile(anche nel bel mezzo di una query o di un invio di email).

    E' necessario quindi :
    - calcolare il tempo medio di invio di una email
    - moltiplicarlo per il numero di email da spedire
    - aumentarlo del 20% o del 25% ( giusto per avere un minimo di tolleranza)
    - impostare il tempo massimo di esecuzione dello script
    - attenzione che non vengano pigiati i bottoni di invio piu' volte(magari anche da 2 postazioni differenti).

    per settare questo parametro dai un occhio :

    - http://php.net/manual/en/function.set-time-limit.php

    - http://php.net/manual/en/function.ini-set.php
    -> con riferimento all'appendice : http://www.php.net/manual/en/ini.list.php

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Perfetto, annoverato tra i link per migliorarla

    Calcola che ho impostato uno sleep di 5 secondi tra un loop e un altro giusto per evitare la blacklisting delle mail e far "riposare" il server.

    Comunque continuerò a lavorarci su.

    Grazie ancora Virus
    E come disse la Pannocchia...
    "non mi batterai Mais..."

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    No prob.

    In bocca al lupone


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.