rockeroff Skrevet 22. april 2008 Del Skrevet 22. april 2008 Hei Jeg driver med et program som skal sende epost for meg, og jeg bruker System.Net.Mail.SmtpClient og MailMessage til å sende én og en mail med personlig navn og innhold. Det fungerer, men det tar fryktelig lang tid. Har du noen tips for å øke hastigheten? Lenke til kommentar
GeirGrusom Skrevet 22. april 2008 Del Skrevet 22. april 2008 Bruk en egen tråd for å sende meldingen asynkront. Lenke til kommentar
Manfred Skrevet 22. april 2008 Del Skrevet 22. april 2008 (endret) Jeg har aldri hatt problemer med at dette gå tregt. Det virker mest som om det er smtp-en som svarer tregt. Såklart kommer det an på hvor mange mailer du skal sende, og litt hvordan koden din er da. Men er det et problem at det er kjedelig å sitte og vente på kan du sende det asynkront, som GeirGrusom sier. Men hvordan er koden din for sending da? Det er litt vanskelig for oss å optimaliere en kode vi ikke ser. Vi er fortsatt ikke synske. Endret 22. april 2008 av Manfred Lenke til kommentar
rockeroff Skrevet 22. april 2008 Forfatter Del Skrevet 22. april 2008 Men er det et problem at det er kjedelig å sitte og vente på kan du sende det asynkront, som GeirGrusom sier. Men hvordan er koden din for sending da? Det er litt vanskelig for oss å optimaliere en kode vi ikke ser. Vi er fortsatt ikke synske. Den går i en backgroundworker-tråd. Koden: private void bw_Arbeider_DoWork(object sender, DoWorkEventArgs e) { SmtpClient c = new SmtpClient("epost.XX.no"); c.Credentials = new NetworkCredential("[email protected]", "XXXX"); int teller = 0; StreamWriter sW = File.CreateText("K:\\" + DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToLongTimeString().Replace(':', '\'') + " " + txt_Header.Text + "_logg.txt"); sW.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " Startet sending."); foreach(MailMessage m in (ArrayList)e.Argument) { try { c.Send(m); teller++; } catch (Exception ex) { sW.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " FEIL: " + ex.Message); sW.WriteLine("\tMail ikke sendt til " + m.To); } bw_Arbeider.ReportProgress(teller); m.Dispose(); } sW.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " " + teller + " eposter sendt."); sW.Close(); } Lurer på om jeg skal gå for en epost med mange BCC-mottakere i steden. Lenke til kommentar
Manfred Skrevet 22. april 2008 Del Skrevet 22. april 2008 Mail-protokollen, som så mange andre (FTP, osv) er en utrolig teit protokoll, og absolutt ikke særlig kjapp. Hvis det er mange mailer du spytter ut en etter en, så vil nok det i seg selv ta lang tid, dessverre. Med mindre du skal revolusjonere hvordan mail sendes Jeg sender ut endel mailer selv, og sender til en bunch med BCC-er, for at det ikke skal ta så forferdelig lang tid. Setter du på en StopWatch eller noe, så vil du nok se nedover at det er c.Send(m); som tar tid. Og her er det ikke så mye du kan få gjort. Lenke til kommentar
rockeroff Skrevet 22. april 2008 Forfatter Del Skrevet 22. april 2008 OK, blir nok til at jeg går for BCC-varianten da. Tusen takk for svarene! Lenke til kommentar
Manfred Skrevet 22. april 2008 Del Skrevet 22. april 2008 mail er en av de mange standardene GeirGrusom er så utrolig glad i Lenke til kommentar
GeirGrusom Skrevet 22. april 2008 Del Skrevet 22. april 2008 Hehe, mail er utrolig gammeldags, og det er ikke blitt gjort noe med. Man kan f.eks. fint sende anonym mail rundt omkring, som fører til betydelig mye mer spam. Det finnes INGEN måte å trace en mail på, så man kan ikke vite om avsenderen er den som den gir seg ut for å være. Mail har heller ingen som helst sikkerhet forbundet med seg. De fleste internett protokoller er fra 60 og 70 tallet, og lite er blitt gjort med dem. Men nok off-topic Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå