Hoi tweakers,
Ik ben bezig met een programma in C# om een groot aantal mails te versturen naar klanten van het bedrijf waar ik werk ( circa 100 000 ) . Normaal gesproken verstuur je emails via de SmptMail class uit System.Web.Mail. Maar deze class maakt voor elke email een nieuwe verbinding met de SMTP server, iets wat ongeveer drie seconden in beslag neemt. Opzich geen probleem maar met deze aantallen emails die vertuurd dienen te worden duurt dat veel te lang.
De code die ik nu gebruik is als volgt.
Simpel dus maar niet effectief. Ik vraag me af of het mogelijk is om op een fundamentelere ( en dus snellere ) manier emails te versturen. Ik heb ook al een poging gedaan met multithreading maar dit levert geen snelheidswinst op omdat mail communicaties allemaal lopen via een COM object die zelf een que maakt en dus alsnog de emails stuk voor stuk verstuurd.
Wat ik dus eigenlijk wil is zelf een verbinding maken met de server en door 1 verbinding alle emails vesturen en de verbinding vervolgens weer sluiten. Het lijkt me dat er op die manier een aanzienlijke snelheidswinst optreed, het enige probleem is dat ik geen idee heb hoe ik dat moet doen en de website http://systemwebmail.net helpt daar ook niet mee, misschien dat iemand hier een idee heeft..?
Ik ben bezig met een programma in C# om een groot aantal mails te versturen naar klanten van het bedrijf waar ik werk ( circa 100 000 ) . Normaal gesproken verstuur je emails via de SmptMail class uit System.Web.Mail. Maar deze class maakt voor elke email een nieuwe verbinding met de SMTP server, iets wat ongeveer drie seconden in beslag neemt. Opzich geen probleem maar met deze aantallen emails die vertuurd dienen te worden duurt dat veel te lang.
De code die ik nu gebruik is als volgt.
C#:
1
2
3
4
| MailMessage message = new MailMessage(); // Instellingen message component verwijderd, voegt nu even niks toe SmtpMail.SmtpServer = "smtp.someserver.org" SmtpMail.Send(message); |
Simpel dus maar niet effectief. Ik vraag me af of het mogelijk is om op een fundamentelere ( en dus snellere ) manier emails te versturen. Ik heb ook al een poging gedaan met multithreading maar dit levert geen snelheidswinst op omdat mail communicaties allemaal lopen via een COM object die zelf een que maakt en dus alsnog de emails stuk voor stuk verstuurd.
Wat ik dus eigenlijk wil is zelf een verbinding maken met de server en door 1 verbinding alle emails vesturen en de verbinding vervolgens weer sluiten. Het lijkt me dat er op die manier een aanzienlijke snelheidswinst optreed, het enige probleem is dat ik geen idee heb hoe ik dat moet doen en de website http://systemwebmail.net helpt daar ook niet mee, misschien dat iemand hier een idee heeft..?
I feel absolutely clean inside, and there is nothing but pure euphoria. - Alexander Shulgin