2011-05-05 8 views
7

Zbudowałem stronę internetową dla klienta i chciałbym niestandardowego narzędzia biuletyn. Zbudowanie tego narzędzia było łatwe, ale nie jestem pewien, jak wysłać wiadomość e-mail.Jak wysłać masowe wiadomości e-mail z ASP.NET?

Przygotowałem stronę testową i udało mi się wysłać wiadomość testową do mnie za pomocą przestrzeni nazw System.Net.Mail. Próbowałem zastosować ten kod do pętli na stronie biuletynu, ale okazało się to dość trudnym zadaniem. Pętla wysyłania wiadomości e-mail blokuje całą witrynę przez około godzinę, wysyłając e-maile. Czasami przerwie pętlę w połowie, a niektóre e-maile nie zostaną wysłane.

Próbowałem uruchomić pętlę w innym wątku.

, ale nadal powoduje spowolnienie witryny i ma zwyczaj przerywania w połowie. Jaka jest powszechna metoda wysyłania masowych wiadomości e-mail? Jestem pewien, że nie robię tego dobrze.

Jestem bardzo nowy na arenie e-mailowej w .NET, więc każda pomoc jest doceniana.

+5

Użyj usługi, a nie strony asp.net do wysyłania wiadomości e-mail –

+0

jakiego używasz MailServer? –

+0

Nieco istotne: http://stackoverflow.com/questions/3905734/how-to-send-100-000-emails-welyly/3905805#3905805 – Piskvor

Odpowiedz

6

Do tego rodzaju zadań lepiej dodać kilka zadań do kolejki. Następnie uruchom wątek, który pobiera x liczby zadań z kolejki, przetwarza je (tj. Wysyła wiadomości e-mail), a następnie śpi przez pewien okres czasu. Dzięki temu aplikacja internetowa będzie miała trochę przestrzeni do oddychania.

Jeśli korzystasz z bazy danych, możesz utworzyć tabelę kolejki e-mail do przechowywania zadań. Wolę używać tego rodzaju pamięci nad pamięcią, jeśli aplikacja zostanie z jakiegoś powodu poddana recyklingowi lub zostanie zgłoszony wyjątek ... co najmniej można odebrać od miejsca, w którym zostało przerwane.

Zasadniczo proces uruchamiający wątek roboczy nie byłby samą aplikacją internetową. Byłaby to usługa Windows lub coś podobnego. To może nie być możliwe, jeśli jesteś na współdzielonym hostingu.

+0

Bardzo pouczające i zwięzłe. Dziękuję Ci. Czy znasz jakieś zewnętrzne API, na które możesz się zapisać, aby zrzucić na nie ładunek i pozwolić im wysyłać e-maile? – Chev

+0

Uzgodnione. Chevex nie będzie mógł stworzyć usługi (hostingu współdzielonego), ale ta metoda będzie działać nadal w systemie głównym. – IAmTimCorey

+0

Myślę, że najtańszą opcją byłoby umożliwienie innej firmie obsługi obciążenia pocztą e-mail. Po prostu nie mogę znaleźć dobrego, masowego api e-maila. Czy jest popularny taki, którego używa większość ludzi? – Chev

Powiązane problemy