Non consiglierei la pagina web di asp.net da inviare, anche se lo si avvia in un thread in background separato. Penso che correrai il rischio che il server ricicli il tuo processo nel bel mezzo dell'invio, il che significherebbe rovinarlo. Hai davvero bisogno di scrivere una sorta di servizio o applicazione separati per inviare le tue email.
L'opzione più semplice sarebbe quella di creare una semplice e veloce console o un'applicazione di Windows form.
Anche la registrazione è fondamentale proprio come ha detto l'altro poster. Se fallisce, vuoi sapere esattamente cosa è stato spedito e dove è stato interrotto, così quando lo riavvii non invii mail a tutte le persone per cui ha funzionato di nuovo. Vuoi essere in grado di inserire il punto di partenza per l'invio, quindi se è necessario riavviare al numero di posta elettronica # 5000 è possibile.
Le classi nel namespace System.Net.Mail funzioneranno correttamente per l'invio della posta.
Uno dei maggiori problemi sarà trovare un host di posta elettronica che ti consenta di inviare tante e-mail. La maggior parte degli host di posta elettronica ha limitazioni e talvolta cambia a seconda delle condizioni del server, quindi se il server viene utilizzato intensamente, i limiti di posta elettronica saranno più restrittivi e sarà possibile impostare solo 500 email all'ora.
Abbiamo una newsletter che arriva a circa 20000 persone come email separate e abbiamo dovuto giocare con il ritardo tra le e-mail finché non ne abbiamo trovato uno che avrebbe funzionato per il nostro host di posta elettronica. Abbiamo finito con 1,2 secondi tra le email, quindi questo potrebbe essere un buon punto di partenza.
Penso che ci siano host di posta elettronica specializzati in invii in grandi quantità, quindi se si ottiene uno di quelli potrebbe non essere un problema.
Anche se si ospita la propria e-mail questo potrebbe non essere un problema. E se si ospita la propria posta, si avrà la possibilità di eliminare la posta nella directory di prelievo e si potrebbe semplicemente scaricare tutto quanto in esso a proprio piacimento, e lasciare che il servizio di posta elettronica lo ritiri al proprio ritmo.
EDIT: Ecco le impostazioni da aggiungere al file di configurazione per l'impostazione della directory di prelievo
<system.net>
<mailSettings>
<smtp from="[email protected]" deliveryMethod="SpecifiedPickupDirectory" >
<specifiedPickupDirectory pickupDirectoryLocation="Z:\Path\To\Pickup"/>
</smtp>
</mailSettings>
</system.net>
hi cris, grazie per la risposta. abbiamo il nostro server di scambio. Mi chiedo come posso eliminare la posta nella directory di prelievo? –
Nell'elemento mailsettings del file di configurazione è possibile modificare il metodo di consegna. Puoi anche farlo a livello di programmazione. http://msdn.microsoft.com/en-us/library/ms164240.aspx –
Grazie Cris mi darò prova –