Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    automatizzare invio migliaia di email

    Salve a tutti!
    Mi sto sbattendo da tempo con un problema, ma non riesco a venirne a capo. Spero qualcuno possa aiutarmi.

    Il problema riguarda l'invio automatizzato di migliaia di email.

    Entro nel dettaglio: ho scritto un CMS per un azienda cliente, che include tra le centinaia di funzionalità anche l'invio di email a certe mailing list. Non si tratta di vere e proprie newsletter, badate bene, ma di elenchi di loro clienti che ricevono delle e-mail informative su particolari prodotti o clienti. La registrazione dei destinatari avviene in altra sede e l'azienda non vuole utilizzare sistemi come phplist etc che richiedono ulteriori registrazioni e sono difficilmente integrabili col sistema sviluppato ad hoc per loro.

    Ora, in estrema sintesi il sistema attuale funziona così:
    1) Composizione dell'email mediante template o ex novo, con campi variabili che andranno completati con i dati prelevati da un db per personalizzare l'email (FATTO)
    2) Scheduling dell'invio dell'e-mailing (FATTO)
    3) Invio delle migliaia di email (FATTO A META'...)

    Avviso che sono in hosting su Aruba su piattaforma LAMP (Linux Apache Mysql) è che mi trovo benissimo così...

    Il problema del punto 3) è questo: pochi destinatari, tutto ok; lancio da cron uno script php una volta al giorno che legge dal db se ci sono e-mail da inviare, sostituisce i campi variabil e esegue l'invio.

    Molti indirizzi email (3-5000): naturalmente lo script va in timeout. E se non ci va lo script, ci va il server.

    Attualmente il problema è risolto così: l'invio delle email viene avviato a mano chiamando lo script dal browser: due pagine php si chiamano vicendevolmente ed eseguono l'invio (questo per evitare che il timeout delle pagine blocchi l'invio di migliaia di email). Se la procedura si blocca per un qualsiasi motivo (che viene riportato a video), basta richiamare nuovamente lo script e si continua.

    Vorrei automatizzare questa procedura,cioè l'avvio degli script in automatico, ma non ho idea di come risolvere il problema.
    Non posso chiamare da cron un solo script che esegua l'invio, perchè il tempo di esecuzione supererà i 30 secondi di sicuro... e se scrivo due script che si richiamano ma non danno output a video il server li blocca credendolo un loop infinito.

    Possibili soluzioni:
    - chiamare lo script a intervalli regolari da cron (tipo ogni 10 minuti) per un numero limitato di email (un centinaio?), per essere sicuro che non si blocchi per il timeout... in questo modo posso automatizzare l'invio... ma non mi sembra una soluzione molto elegante...
    - impostare una operazione pianificata ad intervalli regolari in windows dal cliente che apra una finestra del browser richiamando lo script... ancora peggio!!!

    Suggerimenti?

    Grazie

  2. #2
    nessun consiglio???

  3. #3
    Un'idea buttata così:
    Iscrivi tutti i clienti ad una mailing list (aruba le mette a disposizione nei sui piani di hosting), quindi invia una mail alla mailing list che verrà automaticamente girata a tutti i clienti.
    Dovresti solo occuparti di configurare bene la mailing list affinché l'invio sia consentito solo all'admin e creare uno script che aggiorni il db della mailing list con il db dell'applicazione web (un cron job notturno andrebbe bene).

    A limite la tua prima idea non mi sembra proprio così malvagia...

  4. #4
    Grazie per il suggerimento, ma se domani cambiassi provider... non funzionerebbe più niente.

    Peraltro non credo che aruba mi consenta di metter mani agli elenchi della mailing list dall'esterno, anche se mi sembra di ricpordare che sia configurabile mediante comandi inviati da email...

    Mi sa che proseguirò sulla prima idea...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    17
    Raggruppa i destinatari per dominio e spedisci un dominio per volta aprendo una sola connessione.

    Utilizza i thread per parallelizzare le operazioni.

    Ma il max_execution_time lo hai settato a 0 ?

    Ciao

  6. #6
    thanks... vediamo sin dove posso spingermi con Aruba...

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.