2012-10-16 6 views
5

Jednym z naszych problemów jest to, że nasz wychodzący serwer e-mail czasem coś zasysa. Użytkownicy uruchomią wiadomość e-mail w naszej aplikacji, a aplikacja może zabrać ją w ciągu 30 sekund, aby ją wysłać. Zróbmy to jeszcze gorzej i przyznamy, że nie robimy tego nawet w wątku tła, więc użytkownik jest całkowicie zablokowany w tym czasie. Baza danych programu SQL Server została zaproponowana jako rozwiązanie tego problemu, ponieważ zasadniczo implementuje kolejkę komunikatów i jest fizycznie bliższa i znacznie bardziej responsywna niż nasz zewnętrzny host poczty e-mail. Jest też wprawdzie bardzo łatwy w implementacji, ponieważ zastępuje jedno połączenie z SmtpClient.Send wykonaniem procedury składowanej. Większość naszego e-maila z aplikacją zawiera pliki PDF, XLS i tak dalej, a widzę, że rozmiar tych załączników sięga nawet 20 MB.Czy używanie poczty bazy danych jako serwera przekazywania poczty e-mail jest dobrym pomysłem?

Używanie poczty bazy danych do obsłużenia wszystkich naszych e-maili z aplikacjami jest dla mnie złe, ale trudno mi mówić o tym komukolwiek, biorąc pod uwagę bardzo niski koszt wdrożenia. Nasz produkcyjny serwer bazy danych jest o wiele za mocny, więc nie jestem pewny, czy to nie może obsłużyć obciążenia także przez. Jakieś pomysły czy bezpieczniejsze alternatywy?

Odpowiedz

1

Wszystko, co musisz zrobić, to uruchomić go za pośrednictwem serwera SMTP i jeśli planujesz wysyłać duże ilości poczty, musisz nie tylko zrównoważyć obciążenie serwerów (i serwerów DNS, jeśli planujesz na wysyłanie 100k + maili na raz), ale upewnij się, że wychodzące serwery poczty e-mail mają odpowiednie rekordy A zarejestrowane w DNS, aby zapobiec powrotom.

To tanie rozwiązanie (bez kosztów równoważenia obciążenia).

+0

Czy mógłbyś rozwinąć? Czy masz na myśli hostowanie serwera SMTP w naszej sieci LAN i używanie go? Czy filtrowanie spamu byłoby problemem? Wysyłamy to, co uważam za niewielką ilość wiadomości e-mail, ale często wysyłam duże załączniki, więc nie jestem pewien, czy równoważenie obciążenia byłoby warte kosztu. –

0

Tak, podwójnie domowym serwerem dla wewnętrznego LAN i Internetu i upewnij się, że jest to serwer wyłącznie wychodzący. Rozpocznij od jednego serwera SMTP i jeśli otrzymasz od razu nietoperza, sprawdź, czy to pamięć, dysk, sieć lub obciążenie. Jeśli jego obciążenie jest powiązane, może to być czas, aby przyjrzeć się równoważeniu obciążenia. Jeśli jest związana z pamięcią, wrzuć do niej więcej pamięci. Jeśli jest to związane z dyskiem, rzuć na niego tablicę 0 + 1 raidu. Jeśli jest to związane z siecią, użyj większej rury.

+0

Jestem niezłym administratorem sieci/serwera. Nasz faktyczny administrator sieci/serwera mówi, że odbiorcy mogą blokować nasze e-maile, ponieważ nie będą w stanie wykonać wstecznego sprawdzenia naszego serwera SMTP. Naprawdę nie wiem, co to znaczy, ale patrzę na to. Witamy również w StackOverflow! Lepiej jest po prostu edytować oryginalną odpowiedź, zamiast zamieszczać nową odpowiedź, aby odpowiedzieć na kolejne pytanie. –

+0

Powiedz swojemu administratorowi sieci, że przy poprawnie skonfigurowanych rekordach DNS to nie będzie problemem. –

+0

Mówi, że nasza domena wskazuje już serwer pocztowy (nie jest to nasz własny) i że będziemy musieli użyć subdomeny lub coś dziwnego, aby mieć drugą. –