Jak wysłać wiadomość e-mail z wiersza polecenia lub skryptu? Chcę móc programowo uruchomić skrypt, przekazując odbiornik i komunikat.
email
development
command-line
script
michelemarcon
źródło
źródło
Odpowiedzi:
mail -s subject [email protected]
wpisz swoją wiadomość, naciśnij,Ctrl+D
aby zakończyćźródło
echo This will be the body of the email | mail -s "This is the Subject" [email protected]
Są dwa programy, o których wiem, że z łatwością pozwolą Ci skonfigurować komputer Mac do wysyłania wiadomości e-mail z wiersza polecenia.
Dla obu z nich napisałem HOWTO:
Z tych dwóch proponuję
msmtp
.Konfiguracja jest na tyle skomplikowana, że nie jestem pewien, czy powinienem zreplikować wszystkie kroki tutaj, ale wspomnę, że jeśli używasz Homebrew , możesz zainstalować msmtp za pomocą
brew install msmtp --with-macosx-keyring
Reszta to tylko kwestia skonfigurowania powiązanych plików konfiguracyjnych
Pierwszy to
/usr/local/etc/msmtprc
Zauważ, że
tls_trust_file
wiersz powinien wskazywać, gdziekolwiek pobrałeś i zainstalowałeś certyfikaty z https://www.thawte.com/roots/index.html .Wstawiam mój,
~/Dropbox/Thawte Roots
aby móc go mieć na wszystkich moich komputerach Mac.Następnie potrzebujesz
~/.mailrc
pliku, aby powiedzieć, gdzie znajduje się plik binarny msmtp. Jeślibrew
go użyjesz ,/usr/local/bin/msmtp
plik będzie wyglądał następująco:Ostatnim, ale kluczowym krokiem jest upewnienie się, że Twój pęku kluczy ma informacje dokładnie w formacie, którego oczekuje od msmtp:
Myślę, że dotyczy to większości szczegółów. Zobacz http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/, jeśli chcesz uzyskać więcej informacji.
źródło
[email protected]
na adres e-mail Gmaila lub Google Apps.~/.msmtprc
Najbardziej podstawowym sposobem wysyłania poczty jest sesja telnet z serwerem smtp twojego dostawcy / sieci. Po skontaktowaniu się z serwerem i po każdym poleceniu serwer odpowie, jeśli przyjmie polecenie, np. „250 OK” lub komunikat o błędzie nie.
Wszystkie szczegóły można znaleźć w RFC2821 - Simple Mail Transfer Protocol, Google dla niego. Ten podstawowy sposób jest świetny do testowania, dlaczego coś idzie nie tak podczas wysyłania poczty, ale myślę, że dość skomplikowane jest napisanie pełnego dowodu.
Najpierw uzyskaj interfejs wiersza polecenia na swoim komputerze, uruchamiając Terminal. Następnie wykonaj następujące polecenia, jeden po drugim.
Otwórz sesję telnet do portu 25 serwera smtp twojego dostawcy / sieci
przywitaj się i nazwa internetowa Twojego dostawcy / sieci, np. abc.com
potrzebny jest adres zwrotny od =, <i> są częścią polecenia
podaj jedno lub więcej miejsc docelowych, <i> są częścią polecenia
powiedz serwerowi, że chcesz rozpocząć wysyłanie danych
teraz serwer powinien odpowiedzieć, możesz rozpocząć wysyłanie poczty i przejść do trybu danych
teraz zakończ dane kropką jako znakiem tylko na linii
serwer wraca do trybu poleceń, więc możesz wyjść
źródło
To działało dla mnie, zostało napisane z myślą o Lionie, ale działa dla Mountain Lion. Przy okazji używa Gmaila, więc jeśli nie jesteś ...
Nie musisz niczego pobierać! (wystarczy skonfigurować konto Gmail)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Skonfiguruj Postfix dla Gmaila SMTP Edytuj plik /etc/postfix/main.cf
i dodaj poniżej poniższe komentarzehosthosts: -
Wygeneruj hasło sasl, jeśli jeszcze nie istnieje
i wprowadź następujące dane:
Uruchom następujące polecenia
I skończysz…
Teraz powinieneś być w stanie wysyłać wiadomości e-mail z poziomu wiersza poleceń, np. Aby wysłać zawartość katalogu jako drzewa na adres e-mail
źródło
mtcmail to kolejna opcja: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Zignoruj ten dodatkowy tekst. Dodano, ponieważ: treść musi mieć co najmniej 30 znaków; wszedłeś 27.]
źródło
Możesz sprawdzić postfixconf, który włącza i konfiguruje OS X do wysyłania wiadomości e-mail z wiersza poleceń (przy użyciu danych wejściowych).
Opiera się na konfiguracji Postfiksa, która jest dobrze udokumentowana w Internecie tutaj , tutaj i tutaj .
źródło
Ponieważ jest oparty na Uniksie, możesz użyć polecenia sendmail .
źródło