2011-11-24 14 views
121

Wiem, że istnieją sposoby wysyłania wiadomości e-mail z terminala w systemie Linux/MacOS, ale nie mogę znaleźć odpowiedniej dokumentacji, jak to zrobić.Jak wysłać e-mail z Terminala?

Zasadniczo potrzebuję go dla mojego skryptu bash, który powiadamia mnie za każdym razem, gdy następuje zmiana w pliku.

+2

Powinno chyba być tutaj zauważyć, że niektórzy gospodarze i ISP „wyłączyć” zdolność do wysłania e-maila. Zakładam, że jest to próba powstrzymania ludzi przed spamowaniem i wyłudzaniem informacji. –

+0

@JimJeffries Które? Korzystam z serwera internetowego Amazon EC2. – ckjbgames

Odpowiedz

110
echo "this is the body" | mail -s "this is the subject" "[email protected]" 
+14

Zauważ, że wszystkie te rozwiązania zakładają, że masz lokalnie zainstalowany MTA – Miquel

+8

@Miquel. W Ubuntu możesz uzyskać wstępne wymagania za pomocą 'sudo apt-get install mailutils'. – earldouglas

+3

@James, to nie działa na mój MAC ((możesz mi pomóc? – neo

34

Jeśli wszystko czego potrzebujesz to linia przedmiot (jak w odpowiednie ostrzeżenie) po prostu zrobić:

mailx -s "This is all she wrote" < /dev/null "[email protected]" 
+0

Moje ulubione zdecydowanie –

+0

@medTechy Cieszę się, że Ci się przyda! – JRFerguson

+0

Bardzo przydatne ... Wielkie dzięki! – Shambho

7

w terminalu na Mac OS lub Linux wpisać ten kod

mail -s (subject) (receiversEmailAddress) <<< "how are you?" 

na przykład spróbować tej

mail -s "hi" [email protected] <<< "how are you?"<br> 
13

Jeśli chcesz dołączyć plik na Linuksie

echo 'mail content' | mailx -s 'email subject' -a attachment.txt [email protected] 
+3

Daje komunikat' invalid header' dla mojego załączonego pliku Poprawną opcją było wielkie litery '-A'. – Stephane

+0

@Stephane Według patrick-haugh, -a jest przełącznik mocowania. -A jest dla polecenia konta. Zobacz stronę man: https://linux.die.net/man/1/mailx – MiaeKim