Lav en do-while af en art, som bare løber igennem, og som kalder denne funktion hver gang, og så vil du kunne sende alle dine 50.000 mails. Ved ikke om du har prøvet det samme....
Arne... Jeg får ingen direkte fejl, men app. står bare og hænger, og hænger og hænger (Selv når jeg kun prøver at sende til 1000 modtagere), og så har jeg kvalt den efter en ½ time
Dog er jeg stadig i den situation at det tager 68 sek. at sende 174 mails Det vil sige at det kommer til at tage ca. 5,5 timer at sende 50K mails ud :(
Du skal regne med at serveren skal håndtere det hele, og hvis de af en eller anden grund har sat spærre på, hvor mange mails der må komme igennem fra en IP i min. så kan du jo ikke gøre noget ved det.
Nu har jeg efterhånden overstået min ferie,og har fuldført applicationen hvor den arbejder i tråde....
...og det var faktisk ikke nogen dårlig ide, jeg har lige afsendt 11 mails på ca. 4 sek. og såfremt det holder er vi nu nede på at kunne sende 40K mails på ca. 4 timer
I skal alle have tak for hjælpen
Arne_V -> Smider du et svar. Tak!
Lidt info til andre interesseret... Jeg har lavet en custom collection, som indenholder alle mine mails (hvor body'ens indhold er mergede med navn, links etc.) Denne custom collection bliver brudt op i mindre collections ud fra en variable (batchsize). For hver batch, starter jeg en ny tråd, som modtager min collection samt en (singleton) delegate. I den tråd sender jeg så mailsene en efter en, og for hver afsendelse invoker jeg en envent (som indeholder et flag, hvorvidt mailen er sendt eller om den er bad, dermed kan man efterfølgende rense ud i døde mailadresser, samt man kan løbende opdatere en progressbar på gui'en ect.)
Hvis der er nogle der er interesseret i en uddybning, skal i være velkommende til at skrive.
Kunne faktisk godt bruge lidt inspiration! Sidder selv og "makker" med et nyhedsbrev script! Scriptet virker, men opfylder ikke dette krav at modtageren ikke må se alle adresserne mailsene er sendt til. Såden ser scriptet ud:
void Page_Load(Object Sender, EventArgs E) {
if (!IsPostBack) { OleDbConnection OurConnection; OleDbCommand OurCommand; OleDbDataReader OurDataReader; OurConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("../database/ns.mdb")+";"); OurConnection.Open(); OurCommand = new OleDbCommand("SELECT email FROM nyhedsbrev ORDER BY email", OurConnection); OurDataReader = OurCommand.ExecuteReader();
System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage(); mailMessage.From = "kundeservice@ultimate-web.dk"; mailMessage.To = strEmailTo; mailMessage.Bcc = strEmailTo; <--- Her går det galt, den skjuler ikke mailadresserne mailMessage.Subject = "Nyhedsbrev fra nordjyskesommerhuse"; mailMessage.BodyFormat = System.Web.Mail.MailFormat.Text; mailMessage.Body = "Du har netop modtaget et af Nordjyske Sommerhuses jævnligt udsendte nyhedsbreve.\n\n " + tbNyhedsbrev.Text + "" ;
Virker dette ikke? mailMessage.From = "kundeservice@ultimate-web.dk"; mailMessage.To = mailMessage.From; mailMessage.Bcc = strEmailTo; <--- Her går det galt, den skjuler ikke mailadresserne
En anden ting du skal være opmærksompå er at de fleste/alle SMTP servere altid lægger en begrænsning på maks antal TO, CC og BCC
Det kan svinge fra 50 til 1000... det vil sige du skal sende i klumper, 100 ad gangen måske
Synes godt om
Slettet bruger
22. februar 2006 - 11:16#20
Ok - men foreløbig har jeg kun 2 ;-) Som den ser ud nu sendes nyhedsbrevet ud til alle mailadresser i tekstfeldtet tbEmail.Text. Eneste problem er at modtageren kan se alle modtageradresser...
har du prøvet at bruge det som jeg skrev? En modtager kan ikke se BCC, så det burde altså virke med mindre at du bruger TO til dine to modtagere
Synes godt om
Slettet bruger
22. marts 2006 - 13:47#22
Har netop prøvet at udsende til 263 modtagere, hvilket går galt! Hvordan sætter jeg den til at sende til "klumper" af fx 50 - 100 af gangen?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.