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

    [VB.NET] Invio email: tanti utenti

    Ho questo problema.

    Devo inviare una email con un allegato a più utenti di una lista (1000-2000-4000 utenti) e non so come devo fare, mi spiego meglio.

    Se creo l'email con un allegato ad esempio da 2Mb e poi lo spedisco a tutto la lista, il server SMTP di uscita logicamente mi ferma l'invio perchè sono troppi i destinatari.

    Se creo l'email con un allegato ad esempio da 2Mb e poi lo spedisco ad uno ad uno della lista, mi serve una marea di tempo.
    Esempio: Se invio questo allegato da 2Mb a 2000 utenti mi trovo un traffico di 4Gb in uscita, con un problema molto grave: mentre invio queste 2000 email non posso più utilizzare il programma fino alla fine di questa funzione

    Avevo pensato ad una soluzione mista: suddiviso la lista con blocchi da 10-15 utenti, cosi tutti i server SMTP accettano l'invio, poi replico la stessa email con il famoso allegato fino alla fine dei gruppi.
    Il tutto deve essere gestito con un MultiThread.
    Cosi facendo piano piano invia tutti gli allegato però nello stesso tempo posso continuare ad utilizzare il programma.

    Voi cosa mi consigliate?
    Come posso risolvere questo problema?
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  2. #2
    Se il tuo problema e' di performance, perche' nel frattempo vuoi aggiornare la UI allora devi usare il multithread e con il BeginInvoke aggiorni la tua finestra.
    Se invece il problema e' la banda devi suddividere gli utenti in gruppi o piu' semplicemente paginare la lista utenti.
    Noi qui lo facciamo con gli auguri di natale e non abbiamo alcun problema, lancio l' applicazione e invia ad uno ad uno gli auguri, anche perche' non voglio che un cliente sappia quali clienti ho e inviare una mail in Bbc non sta molto bene ...

  3. #3

    Ok

    Originariamente inviato da raffaeu
    Se il tuo problema e' di performance, perche' nel frattempo vuoi aggiornare la UI allora devi usare il multithread e con il BeginInvoke aggiorni la tua finestra.
    Se invece il problema e' la banda devi suddividere gli utenti in gruppi o piu' semplicemente paginare la lista utenti.
    Noi qui lo facciamo con gli auguri di natale e non abbiamo alcun problema, lancio l' applicazione e invia ad uno ad uno gli auguri, anche perche' non voglio che un cliente sappia quali clienti ho e inviare una mail in Bbc non sta molto bene ...
    Ok perfetto...proprio come dicevo io...

    Ora c'è solo un problema....come faccio a fare un multithread????

    Hai qualche esempio da indicarmi?

    Per inviare le 2000 email può impiegarci anche un giorno intero...non ci sono problemi, basta che mi faccia continuare a lavorare

    Ciao e grazie
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249

    Re: Ok

    Originariamente inviato da marco.santilli
    ...

    Per inviare le 2000 email può impiegarci anche un giorno inter...
    anche 10! dipende dalla dimensione della mail e dalla velocità della connessione internet che hai
    I got the remedy

  5. #5

    Re: Re: Ok

    Originariamente inviato da albgen
    anche 10! dipende dalla dimensione della mail e dalla velocità della connessione internet che hai
    Si si esatto....anche 10 giorni.....l'importante che posso continuare ad utilizzare il programma

    Avete degli esempi cosi posso studiarli?

    Ciao e grazie
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  6. #6
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    ne trovi in internet a palate...
    o utilizzi il ThreadPool oppure usi il metodo SendAsync della classe SmtpClient.
    I got the remedy

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Credo che i lsecondo è fatto apposta per questo !!!.

  8. #8
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Originariamente inviato da cassano
    Credo che i lsecondo è fatto apposta per questo !!!.
    si ma è la stessa cosa, in entrambi i cai hai dei thread dalla threadpool dell'applicazione...
    I got the remedy

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.