autorul a contribuit voluntar la acest tutorial ca parte a programului Pepipost Write to Contribute.

Introducere

notificările devin din ce în ce mai importante în aceste zile pentru a rămâne actualizate între diverse activități online. Mai mult, aceste notificări pot fi e-mailuri, SMS sau push. Acest tutorial vă va demonstra cel mai simplu mod de a trimite notificări, pe unul dintre cele mai populare canale care este e-mailul. Veți învăța procesul de trimitere a e-mailurilor de la terminal sau un script shell dintr-un sistem de operare Linux, folosind unele dintre instrumentele CLI populare.

acest tutorial vă va ajuta să trimiteți e-mailuri critice la nivel de server, cum ar fi rapoartele Cron, jurnalele de script, înregistrările clienților, chitanța, extrasul bancar prin e-mail. Există multe modalități de a trimite e-mailuri de pe server, dar să explorăm instrumentul ușor de instalat și ușor de codat.

cu biblioteci simple și configurații mici, puteți avea un instrument CLI în sistemul de operare Linux pe care îl puteți utiliza pentru a trimite e-mailuri de la terminal.

cerințe preliminare

  • sistem de operare Linux
  • configurații SMTP (detaliile serverului SMTP și acreditările de autentificare)
  • editorul dvs. preferat (opțional)
  • configurați Gmail SMTP/ready cu orice alte detalii personalizate ale serverului SMTP. În acest tutorial, veți utiliza Gmail SMTP pentru a trimite e-mailuri, deci asigurați-vă că;
    undefinedundefined

configurațiile serverului Google SMTP ar arăta cam așa:

  • server SMTP/Nume gazdă: smtp.gmail.com
  • SMTP Username:
  • SMTP password:
  • SMTP Port: 587
  • TLS/SSL: obligatoriu

este timpul să deschideți acum terminalul

există diverse instrumente și biblioteci pe care le puteți instala pentru a trimite e-mailuri de la terminal. Câteva dintre bibliotecile populare sunt:

  • sSMTP
  • Mailx

în acest tutorial, veți învăța pașii despre cum să instalați și să utilizați sSMTP pentru a trimite e-mailuri din linia de comandă Linux. Faceți clic aici, în cazul în care doriți să aflați cum să instalați și să utilizați Mailx pentru a trimite e-mailuri din linia de comandă Linux.

cum se instalează sSMTP pentru a trimite mesaje de la linia de comandă Linux (CLI)

Pasul 1

utilizați comanda de mai jos pentru a instala ssmtp:

sudo apt-get install ssmtp

Optional:
utilizatorii CentOS pot folosi comanda de mai jos pentru a instala ssmtp:

sudo yum install ssmtp

în CentOS, este posibil să vedeți o eroare în timpul instalării ca „pachetul ssmtp nu este disponibil”, într-un astfel de caz de mai jos comanda, va fi de ajutor pentru a rezolva problema:

sudo yum --enablerepo=extras install epel-release

Pasul 2

odată ce ssmtp instalat cu succes, aveți nevoie pentru a face configurațiile globale de mai jos, care necesare pentru trimiterea de e-mail.

deschideți următorul fișier în editorul preferat:

sudo vim /etc/ssmtp/ssmtp.conf

editați fișierul de mai sus cu detaliile de mai jos:

mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt

configurația de mai sus va fi utilizată pentru a trimite e-mailuri utilizând SMTP-ul Gmail. În cazul în care doriți să utilizați un alt SMTP terță parte, atunci menționați numele de gazdă al acestuia. de exemplu, dacă doriți să utilizați Pepipost SMTP, atunci în loc de smtp.gmail.com, trebuie să menționați smtp.pepipost.com în parametrul mailhub. mailhub este utilizat pentru adresa serverului SMTP care constă din două părți gazdă: port

acum sunteți gata să trimiteți e-mailuri din linia de comandă (CLI).

Pasul 3

există mai multe moduri de a utiliza comanda ssmtp pentru a trimite e-mailuri.

cazul 1: Trimiteți e-mailuri direct din linia de comandă

pentru aceasta, copiați-lipiți comanda de mai jos și sunteți gata să trimiteți e-mailuri din linia de comandă:

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv 

-vvv este verbosity pentru a vedea jurnalele în timp ce trimiterea de e-mail

Cazul 2: Trimite e-mail de la un script Shell

puteți utiliza același ssmtp pentru a trimite e-mail de la un script shell prea. Pentru aceasta, deschideți editorul preferat și creați un fișier script shell cu nume saymail.shand copy-paste codul de mai jos:

#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO

asigurați-vă că ați setat dreptul de acces permisiune la fișierul script. Dacă nu, aici este comanda pentru a seta permisiunea:

$ sudo chmod 755 mail.sh 

acum, codul este gata pentru a fi executat. Doar rulați scriptul shell folosind comanda de mai jos:

$ sudo ./mail.sh

Sper că acum sunteți capabil de a trimite mail-uri folosind script-ul shell prea.

mai jos sunt câteva erori/excepții pe care le puteți întâlni în timp ce trimiteți e-mailul folosind ssmtp:

eroare 1

în cazul în care trimiteți e-mailul, dacă s-ar putea obține eroarea de mai jos ca ieșire:
ssmtp: autorizarea a eșuat (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$ 

soluție: Într-un astfel de caz, încercați să faceți următoarele ca soluție:

  1. activați „Permiteți o aplicație mai puțin sigură” în setările conturilor google, așa cum se explică în secțiunea cerințe preliminare de mai sus.
  2. datele de conectare furnizate pot fi nevalide. Asigurați-vă că aveți acreditările corecte.

odată ce problema este rezolvată, re-rula script-ul shell și rezultatul de succes va fi ceva de genul asta;

$ sudo ./mail.sh

ieșire:

 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

concluzie

Lasă un răspuns

Adresa ta de email nu va fi publicată.