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:

  1. Włącz „Zezwalaj na mniej bezpieczną aplikację” w Ustawieniach kont google, jak wyjaśniono w powyższej sekcji Wymagania wstępne.
  2. 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

wniosek

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.