ASP.NET MVC automatyczne wysylanie emaili

0

Jak zrobić żeby aplikacja sama wysyłała email w określonym czasie, użytkownik podaje datę i godzinę i np. na 2 godziny przed ustalonym terminem aplikacja wysyła do niego maila? Mógłby mnie ktoś naprowadzić?

0

A to musi być aplikacja webowa? Będzie to trudno osiągnąć. Prościej napisać Windows Service, albo zwykłą konsolową aplikację odpalać z harmonogramu zadań.

0

@lc90, dlaczego?

0

Też miałem kiedyś podobny problem, rozwiązaniem jest odpalenie dodatkowe wątku który zajmie się wysyłaniem emaila. Na stacku znalazłem takie rozwiązanie:

ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(false),
    (state, timeout) => { /* TWOJA LOGIKA WYSYŁAJĄCA MAILA*/ },
    null, TimeSpan.FromMinutes(1), false);

Odpalasz to w metodzie

Application_Start()
1

Złym zwyczajem jest wykonywanie okresowo zadań wewnątrz aplikacji webowej.
Do tego powinien być używany osobny serwis.
Jeżeli pomimo wszystko będziesz robił scheduler wewn. aplikacji webowej to w konfiguracji IISa stwórz sobie osobną pulę i wyzeruj wszystkie dla niej wszystkie idle TimeOuty, bo zwyczajnie uśpi Ci pulę przy braku żądań http.

0
micc napisał(a):

Jeżeli pomimo wszystko będziesz robił scheduler wewn. aplikacji webowej to w konfiguracji IISa stwórz sobie osobną pulę i wyzeruj wszystkie dla niej wszystkie idle TimeOuty, bo zwyczajnie uśpi Ci pulę przy braku żądań http.

Co i tak nie daje gwarancji, że pula będzie stała wiecznie. Dlatego jednak lepiej mieć osobny serwis.

0

Dobra to chyba oleje to wysyłanie maili jeśli tyle z tym problemów ale wpadłem na inny pomysł, da się to zastąpić przez stworzenie tabeli przechowującej wiadomości i dodawaniu do niej rekrodów za pomocą joba(nie jestem pewien czy to do tego służy) albo czegoś innego?

1 użytkowników online, w tym zalogowanych: 0, gości: 1