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
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 25
przed 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.
Demony lub serwery SMTP służą do odbierania poczty, a nie jej wysyłania. W twoim przykładzie mail
jest to czysto klient poczty e-mail i łączy się z dowolnym serwerem zdefiniowanym przez odpowiedni rekord DNS MX MX bar.com
i 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
Myślę, że
mail
zawsze 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 lepiejpostfix
) 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).
źródło