Dlaczego OS X może wysyłać wiadomości e-mail bez uprzedniej konfiguracji SMTP?

9

Kiedy próbuję wykonać polecenie w terminalu, wysyłany jest e-mail. Sprawdziłem, czy nie działa lokalny SMTP, więc jaki mechanizm stosuje Apple za sceną?

echo "Hello" | mail -s "Test" foo@bar.com
Joga
źródło

Odpowiedzi:

4

mail Wydaje się, że w systemie OS X odradza się Postfix wystarczająco długo, aby poradzić sobie z pocztą, a następnie rozebrać ją wkrótce.

Aby zobaczyć, jak to działa, spróbuj telnet localhost 25przed poleceniem mail, a następnie natychmiast po, a następnie poczekaj 5 minut i spróbuj ponownie.

Nie jestem pewien, czy to właściwie właściwa odpowiedź na pytanie, ponieważ nie wyjaśnia, w jaki sposób Postfix jest odradzany i niszczony, ale mam nadzieję, że pomaga odpowiedzieć na pytanie.

zigg
źródło
7

Demony lub serwery SMTP służą do odbierania poczty, a nie jej wysyłania. W twoim przykładzie mailjest to czysto klient poczty e-mail i łączy się z dowolnym serwerem zdefiniowanym przez odpowiedni rekord DNS MX MX bar.comi nie wymaga, aby serwer lokalny działał w tym celu.

Jednak w zależności od konfiguracji poczty może być konieczne zalogowanie się do serwera poczty wychodzącej w celu uwierzytelnienia lub jeśli nic innego tylko po to, aby podać adres nadawcy i adres zwrotny itp. Teraz możesz to wszystko zrobić w wierszu polecenia, przekazując odpowiednie parametry w terminalu, ale dopóki skonfigurujesz aplikację Mail, ta konfiguracja jest już zapisana, a po prostu tymczasowo odpalając podsystem poczty, polecenia terminalu mogą pobrać te informacje i mieć teraz jeden lub więcej serwerów smtp poczty, które mogą wybierz wysyłanie wiadomości wychodzących. Następnie zakończy procesy po zakończeniu.

Możesz to wszystko przetestować w wierszu polecenia i wysłać pocztę bez konieczności korzystania z klienta pocztowego. Nie jestem na komputerze Mac, więc te polecenia mogą wymagać edycji przez kogoś, kto jest, ale możesz to zrobić:

nslookup
set type=mx
bar.com
exit

telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)

Przeczytaj to, aby uzyskać więcej informacji na temat wysyłania wiadomości e-mail przez telnet - jest to świetne narzędzie do debugowania

farsz
źródło
Twoja odpowiedź otrzymała najwyższą liczbę głosów, ale jest zła. Mac odrodzi Postfix, aby otrzymać e-mail i zamknąć się automatycznie, jak sugerowano powyżej @zigg. W każdym razie dziękuję za twój wysiłek.
Joga
To nie jest tak, że jest niepoprawny, wszystkie szczegóły są poprawne, ale niekoniecznie odpowiada na twoje pytanie w obecnej formie. Edytowane w tym celu.
faszerowanie
@stuffe powiedział: „Demony lub serwery SMTP są po to, by odbierać pocztę, a nie wysyłać”. Muszę błagać, by się różnić. Ponieważ jest to komentarz, zacytuję to tylko z Wikipedii: „aplikacje klienckie na poziomie użytkownika zwykle używają SMTP tylko do wysyłania wiadomości”
Seamus,
1

Myślę, że mailzawsze używa lokalnego sendmaila do wysyłania maili. W OSX sendmail jest postfiksem. I to jest zdecydowanie używane.

Możesz sprawdzić nagłówki wiadomości Received: by [Your-Mac] (Postfix, from userid ....

Niemniej jednak nie jest dobrym pomysłem używanie mail(lub lepiej postfix) w ten sposób. Najlepszą praktyką byłoby użycie Smart Hosta dla lokalnego Postfixa, aby uniknąć często używanych ograniczeń zapory ogniowej.

Możesz znaleźć rozwiązanie w SMTP Smart Host Setup dla Postfix w Snow Leopard, który działa dla mnie (także na Lion, Mountain Lion).

dor
źródło
Z nagłówka znalazłem ... Otrzymałem: przez 10.194.242.101 z SMTP id xxx; ... X-Otrzymałem: przez 10.68.92.196 z SMTP id yyy; ... ale moje wewnętrzne IP to 192.168.xx
Yoga