IIS / SMTP - wiadomości e-mail utknęły w katalogu głównym / kolejce

25

Próbuję wysyłać wiadomości e-mail za pośrednictwem SMTP w katalogu odbioru IIS. Niestety e-maile trafiają do folderu mailroot / queue i pozostają tam. W rzeczywistości nigdy nie są wysyłani.

Czy ktoś wie, dlaczego tak się stanie i potencjalna naprawa problemu?

Jack Marchetti
źródło
1
Miałem ten sam problem, ale okazało się, że miało to miejsce tylko w przypadku konkretnej domeny docelowej / serwera, tzn. Wysyłałem e-maile do siebie / kolegów za pomocą adresów roboczych (serwer Exchange), a poczta po prostu czeka w kolejce. Przypadkowo wysłałem jedną na moje osobiste konto Gmail i wysłałem bez problemu. Następnie przetestowane z Hotmailem i innym serwerem Exchange, ponieważ cel i poczta zostały wysłane poprawnie. Jednak, aby dowiedzieć się, na czym polega problem, ale jeśli ktoś nadal ma podobny problem, może to oznaczać sprawdzenie!
Matt
@MatthewSwain Widzę tutaj to samo. Setki, jeśli nie tysiące, wiadomości wysłano pomyślnie, ale 53 wiadomości utknęły w kolejce. Wydaje się, że wszystkie dotyczą określonych odbiorców / domen.
Zero3

Odpowiedzi:

18

Miał podobny problem z plikami utknął w kolejce. W menedżerze IIS, SMTP Virtual Server> Właściwości> Dostarczanie> Połączenia wychodzące. Opcja dla Limit number of connections tozostała zaznaczona, a wartość to 0. Został więc skonfigurowany tak, aby nigdy nie nawiązywał żadnych połączeń wychodzących, przez co wiadomości e-mail nigdy nie opuszczały serwera. Odznałem opcję i zrestartowałem serwer SMTP i wszystko poszło dobrze.

Kratz
źródło
Dobry chwyt tego .. jednak nie przypominam sobie nawet wchodzenia w to okno w pierwszej kolejności, aby sprawdzić tę opcję .. nie jestem pewien, jak to się skończyło z 0 na pierwszym miejscu !!
krilovich
Stało się to dla nas dzisiaj. Poszedłem zmienić ustawienie i sprawdziłem „ogranicz liczbę połączeń do” na zakładce „Ogólne” i też mam „0”. Oczywiście zmieniło to również ustawienie „Połączenia wychodzące”.
Travis,
7

Miałem dzisiaj ten problem.

Po zrestartowaniu usługi „Simple Mail Transfer Protocol (SMTP)” zaczął działać ponownie.

Guilherme Melo
źródło
4

Dla przypomnienia: mieliśmy przypadek, w którym serwer nie mógł już rozpoznawać nazw z powodu błędnych ustawień DNS. Wynikowe zachowanie było dokładnie takie, jakie opisałeś.

Olaf
źródło
1
Na czym polegał problem DNS?
Shaamaan,
W moim przypadku musiałem zrestartować nasze kontrolery domeny. z jakiegoś powodu e-maile do jednego konkretnego klienta nie docierały. Prowadzimy skrzynkę, która ma ustawioną domenę taką samą jak klienci, jeśli daje to komukolwiek wskazówkę, dlaczego tak się dzieje i zdarza się to okresowo ... bez wierszyków i powodów .. GHT
Dave
1

IISRESET naprawił to dla mnie. Uważam, że jest to podobne do rozwiązania polegającego na zresetowaniu usługi SMTP, ponieważ usługa ta zależy od IIS. Po ponownym uruchomieniu poczta wewnątrz C: \ inetpub \ mailroot \ Queue zaczęła znikać!

Mzn
źródło
1

Ostatnio natknąłem się na ten problem. W moim przypadku okazało się, że jest to problem z definicją serwera DNS w karcie sieciowej (to z dwóch powodów jest mi nieznane). Wyznaczony serwer DNS został ustawiony na „127.0.0.1” zamiast zwykłego „8.8.8.8”, który jest zwykle używany w tej sieci. Zmieniłem to na prawidłową wartość, zrestartowałem mój serwer SMTP, a kolejkowane wiadomości e-mail zostały natychmiast rozpowszechnione.

Jak do tego doszedłem, aby spojrzeć na problem definicji DNS:

  • Użyłem nslookup do znalezienia serwera MX do przetestowania (przetestowałem 5 lub 6 różnych)
  • Próbowałem połączyć się z serwerem przez telnet (za każdym razem, gdy pojawiał się komunikat „nie można połączyć”, który początkowo przypominał mi problemy z zaporą)
  • Próbowałem pingować wartość dla testowanego serwera MX (za każdym razem, gdy pojawia się komunikat „Nie można połączyć się z hostem”)

Mam nadzieję, że to pomoże komuś innemu, na co początkowo nie myślałem.

ShadeTreeAdmin
źródło
0

Z mojego doświadczenia wynika, że ​​jest to zazwyczaj spowodowane próbą wysłania przez IIS SMTP i napotkaniem tymczasowego błędu (kod odpowiedzi 4xx). Czy włączyłeś rejestrowanie usługi SMTP IIS i przejrzałeś dziennik? Przepraszam, jeśli to wszystko oczywiste, ale trudno jest poznać przyczynę lub poprawkę, nie wiedząc, co pokazuje dziennik.

jlupolt
źródło
1
Wcale nie oczywiste. Nie wiem dużo o IIS itp. [Powinienem], ale skupiam się głównie na kodzie, a nie na administratorach systemu. Nie jestem nawet pewien, jak skonfigurować dziennik.
Jack Marchetti
Jedyne, co widziałem, to: Akcja: nieudana Status: 5.3.5
Jack Marchetti
Aby włączyć dziennik, otwórz Administratora IIS 6 (nawet jeśli używasz IIS 7, usługa SMTP jest nadal częścią IIS 6), kliknij prawym przyciskiem myszy właściwości usługi SMTP i przejdź do zakładki rejestrowania. Powinieneś być w stanie włączyć dziennik i / lub znaleźć jego lokalizację.
jlupolt
0

Wydaje mi się, że problemem może być zamieszanie między IPv4 a IPv6 w systemie, więc kiedy podasz localhost, wybierany jest domyślny protokół IPv6. Miałem dzisiaj ten sam problem i został on naprawiony po tym, jak zmieniono odwołanie localhost do adresu IPv6 w hostach, chociaż mógł to być zbieg okoliczności (konfiguruję również SVN). Oto moja konfiguracja na wszelki wypadek:

  1. W IIS7 mam włączoną opcję „Dostarcz do serwera SMTP” z localhost jako moim wybranym serwerem.
  2. W IIS6 mam dostęp ustawiony tylko na 127.0.0.1, brak uwierzytelnienia dla połączeń przychodzących i wychodzących.

Przez cały dzień bawiłem się ustawieniami, więc, szczerze mówiąc, nie jestem pewien, co jeszcze mogłoby wpłynąć na fakt, że teraz działa. Mam nadzieję, że to pomoże choć trochę.

Shagglez
źródło
0

Pierwszym miejscem do obejrzenia są pliki dziennika serwera. Dzięki temu dowiesz się, czy Twój serwer ma problemy z wysyłaniem danych do określonych hostów. W większości przypadków tak się dzieje (z mojego doświadczenia), że winowajcą jest zazwyczaj DNS (po twojej stronie lub zdalnie).

Techie Joe
źródło
0

Serwer SMTP szuka hosta / bramy SMTP, na którą będzie wysyłana poczta.

Jeśli próbujesz wysłać do localhost, wtedy localhost IP będzie bramą. Jeśli próbujesz wysłać wiadomość na zewnętrzny adres e-mail, taki jak Gmail lub Hotmail, musisz dodać bramę poczty swojego usługodawcy internetowego jako hosta inteligentnego.

Aby skonfigurować inteligentnego hosta:

  1. W Menedżerze IIS kliknij prawym przyciskiem myszy serwer wirtualny SMTP, a następnie kliknij polecenie Właściwości.
  2. Kliknij kartę Dostawa i kliknij Zaawansowane.
  3. W polu Inteligentny host wpisz nazwę inteligentnego hosta. Możesz wpisać ciąg reprezentujący nazwę lub wprowadzić adres IP.
  4. Jeśli chcesz, aby usługa SMTP próbowała dostarczać zdalne wiadomości bezpośrednio przed przekazaniem ich do serwera inteligentnego hosta, zaznacz pole wyboru Próba dostarczenia bezpośredniego przed wysłaniem do inteligentnego hosta. Domyślnie wysyłane są wszystkie zdalne wiadomości do inteligentnego hosta, a nie próby bezpośredniej dostawy.
Administrator Bahrajnu
źródło
0

Miałem ten sam problem po zmianie usługi e-mail z jednego hosta na inny (nowy to Office 365). Po wielu próbach i błędach w końcu zaczął działać, wykonując następujące czynności:

  1. Dodaj moją domenę e-mail do IIS 6 jako domenę „zdalną”. (Jest to domena hostowana w O365 i używają wszystkich kont użytkowników).
  2. W IIS 6 kliknij dwukrotnie tę domenę; w „Route domain” wybierz „Forward all mail to smart host” i wprowadź swój serwer (w moim przypadku „smtp.office365.com”). Zaznacz także pole „Zezwalaj na przekazywanie poczty przychodzącej do tej domeny”.
  3. W IIS 6 kliknij prawym przyciskiem myszy serwer wirtualny SMTP> Właściwości.
    • Karta Ogólne: kliknij opcję Zaawansowane i dodaj adres IP i port lokalnego serwera 587
    • Karta Dostęp: upewnij się, że pole „Wymagaj szyfrowania TLS” jest zaznaczone. Musiałem utworzyć certyfikat domeny w IIS 7 z nazwą mojej domeny e-mail.
    • Karta Dostęp: Dodaj adres IP lokalnego serwera do list „Połączenie” i „Przekaźnik”.
    • Karta Dostawa: Zabezpieczenia wychodzące: wybierz podstawowe uwierzytelnianie, wprowadź dane uwierzytelniające ważnego licencjonowanego użytkownika; zaznacz pole „Szyfrowanie TLS”
    • Karta Dostawa: Połączenia wychodzące: Wpisz 587 dla portu TCP
    • Karta Dostawa: Zaawansowane: wprowadź domenę e-mail jako „W pełni kwalifikowana nazwa domeny”, a serwer poczty e-mail jako „Inteligentny host” (ponownie w moim przypadku smtp.office365.com).

Zapora ogniowa: Przeczytałem, że musisz otworzyć port 587 dla połączeń wychodzących. (Nie zrobiłem tego, ponieważ jest to serwer VOIP, który wymaga wyłączonej zapory).

Office 365: Dodaj „łącznik” w obszarze Administrator> Exchange, aby zezwolić na lokalny statyczny adres IP. Microsoft udostępnia te instrukcje online.

Narciarz
źródło
0

Ostatnio natknąłem się na ten problem. Ktoś zainstalował MalwareBytes na serwerze smtp, a foldery mailroot smtp nie zostały umieszczone na białej liście. Oprogramowanie potraktowało wszystko w kolejce jako potencjalną kampanię spamową i pozwoliło jej upłynąć wystarczająco dużo czasu, aby przeniósł się do złej poczty. Dotyczy to wszystkich domen. Zastanawiałem się (bezbłędna operacja od lat ...), dopóki nie spojrzałem na uruchomione procesy i nie zauważyłem exe mbam.

TWood
źródło
-2

Miałem ten sam problem. Jak powiedzieli inni, było to związane z DNS. Mam strefę wyszukiwania do przodu na naszych wewnętrznych serwerach DNS dla naszej publicznej nazwy domeny (która jest inna niż nasza wewnętrzna nazwa domeny). Musiałem dodać rekordy MX w tej wewnętrznej strefie wyszukiwania do przodu, aby pasowały do ​​rekordów MX w naszych rekordach DNS domeny publicznej. To rozwiązało problem.

Cale Johnson
źródło