autor dobrowolnie wniósł ten poradnik w ramach programu Pepipost Write to Contribute.
wprowadzenie
powiadomienia stają się coraz ważniejsze w dzisiejszych czasach, aby być na bieżąco z różnymi działaniami online. Co więcej, te powiadomienia mogą być E-maile, SMS lub push. Ten samouczek zademonstruje najprostszy sposób wysyłania powiadomień w jednym z najpopularniejszych kanałów, jakim jest e-mail. Nauczysz się procesu wysyłania wiadomości e-mail z terminala lub skryptu powłoki z systemu operacyjnego Linux, przy użyciu niektórych z popularnych narzędzi CLI.
ten poradnik pomoże Ci w wysyłaniu krytycznych wiadomości e-mail na poziomie serwera, takich jak raporty Cron, dzienniki skryptów, rejestracje klientów, odbiór, wyciąg bankowy przez e-mail. Istnieje wiele sposobów wysyłania wiadomości e-mail z serwera, ale przyjrzyjmy się narzędziu, które jest łatwe w instalacji i łatwe w kodowaniu.
dzięki prostym bibliotekom i małym konfiguracjom możesz mieć narzędzie CLI w systemie operacyjnym Linux, którego możesz używać do wysyłania wiadomości z terminala.
wymagania wstępne
- System Operacyjny Linux
- konfiguracje SMTP (szczegóły serwera SMTP i poświadczenia uwierzytelniania)
- Twój ulubiony edytor (Opcjonalnie)
- Skonfiguruj Gmail SMTP/ready z dowolnymi innymi niestandardowymi szczegółami serwera SMTP. W tym samouczku będziesz używać Gmaila SMTP do wysyłania wiadomości e-mail, więc upewnij się, że;
konfiguracje serwera Google SMTP wyglądałyby mniej więcej tak:
- SMTP Server/Hostname: smtp.gmail.com
- SMTP nazwa użytkownika:
- hasło SMTP:
- Port SMTP: 587
- TLS/SSL: wymagane
czas teraz otworzyć terminal
istnieją różne narzędzia i biblioteki, które można zainstalować, aby wysyłać wiadomości e-mail z terminala. Kilka popularnych bibliotek to:
- sSMTP
- Mailx
W tym samouczku dowiesz się, jak zainstalować i używać sSMTP do wysyłania wiadomości z Linuksa. Kliknij tutaj, jeśli chcesz dowiedzieć się, jak zainstalować i używać Mailx do wysyłania wiadomości z linii poleceń Linuksa.
jak zainstalować sSMTP do wysyłania wiadomości z linuksowego wiersza poleceń (CLI)
Krok 1
użyj poniższego polecenia, aby zainstalować ssmtp:
sudo apt-get install ssmtp
Opcjonalnie:
użytkownicy CentOS mogą użyć poniższego polecenia, aby zainstalować ssmtp:
sudo yum install ssmtp
w CentOS może pojawić się błąd podczas instalacji, ponieważ „pakiet ssmtp nie jest dostępny”, w takim przypadku poniższe polecenie pomoże rozwiązać problem:
sudo yum --enablerepo=extras install epel-release
Krok 2
po pomyślnym zainstalowaniu ssmtp musisz wykonać poniższe globalne konfiguracje, które są wymagane do wysyłania poczty.
otwórz następujący plik w swoim ulubionym edytorze:
sudo vim /etc/ssmtp/ssmtp.conf
Edytuj powyższy plik z poniższymi szczegółami:
mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
powyższa konfiguracja będzie używana do wysyłania wiadomości e-mail za pomocą Gmaila SMTP. Jeśli chcesz użyć innego SMTP innej firmy, podaj nazwę hosta tego samego. np. jeśli chcesz użyć Pepipost SMTP, to zamiast smtp.gmail.com, trzeba wspomnieć smtp.pepipost.com w parametrze mailhub. mailhub jest używany dla adresu serwera SMTP, który składa się z dwóch części hosta:port
teraz jesteś ustawiony na wysyłanie wiadomości z wiersza poleceń (CLI).
Krok 3
istnieje wiele sposobów używania polecenia ssmtp do wysyłania wiadomości e-mail.
Przypadek 1: Wyślij wiadomość bezpośrednio z wiersza poleceń
W tym celu skopiuj i wklej poniższe polecenie, a będziesz gotowy do wysłania wiadomości e-mail z wiersza poleceń:
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv
-VVV jest gadatliwością, aby zobaczyć logi podczas wysyłania wiadomości
Przypadek 2: Wyślij wiadomość ze skryptu powłoki
możesz użyć tego samego ssmtp do wysyłania wiadomości ze skryptu powłoki. W tym celu otwórz preferowany edytor i utwórz plik skryptu powłoki o nazwie saymail.shand kopiuj-wklej poniższy kod:
#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO
upewnij się, że ustawiłeś odpowiednie uprawnienia dostępu do pliku skryptu. Jeśli nie, oto polecenie, aby ustawić uprawnienia:
$ sudo chmod 755 mail.sh
teraz kod jest gotowy do wykonania. Wystarczy uruchomić skrypt powłoki za pomocą poniższego polecenia:
$ sudo ./mail.sh
mam nadzieję, że teraz jesteś w stanie wysyłać maile za pomocą skryptu powłoki zbyt.
poniżej znajduje się kilka błędów/wyjątków, które możesz napotkać podczas wysyłania poczty za pomocą ssmtp:
błąd 1
W przypadku wysyłania wiadomości e-mail, jeśli może pojawić się poniższy błąd jako wyjście:
ssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104-gsmtp)
220 smtp.gmail.com ESMTP u65sm14952769pfu.104 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 EUEeGFzc3dvfcaqQ6 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtpssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtp):~/Documents/Scripts$
rozwiązanie: W takim przypadku spróbuj wykonać następujące czynności jako rozwiązanie:
- Włącz „Zezwalaj na mniej bezpieczną aplikację” w Ustawieniach kont google, jak wyjaśniono w powyższej sekcji Wymagania wstępne.
- podane dane logowania mogą być nieprawidłowe. Upewnij się, że masz poprawne dane uwierzytelniające.
gdy problem zostanie naprawiony, uruchom ponownie skrypt powłoki, a wynik sukcesu będzie podobny do tego;
$ sudo ./mail.sh
wyjście:
220 smtp.gmail.com ESMTP h8sm1096aae22880pfo.64 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 UGFzqc3dmvcmQ36 235 2.7.0 Accepted MAIL FROM:<> 250 2.1.0 OK h8smqer10962480pfo.64 - gsmtp RCPT TO:<> 250 2.1.5 OK h8smqer10962480pfo.64 - gsmtp DATA 354 Go ahead h8sm10962880pfo.64 - gsmtp Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 From: "root" <> Date: Thu, 19 Sep 2019 21:45:14 +0530 Hey There! This is a test mail . 250 2.0.0 OK 1568909725 h8smqer10962480pfo.64 - gsmtp QUIT 221 2.0.0 closing connection h8smqer10962480pfo.64 - gsmtp