L’autore ha volontariamente contribuito a questo tutorial come parte del programma Pepipost Write to Contribute.
Introduzione
Le notifiche sono sempre più importanti in questi giorni per rimanere aggiornati tra le varie attività online. Inoltre, queste notifiche possono essere e-mail, SMS o push. Questo tutorial sta per dimostrare il modo più semplice di inviare notifiche, su uno dei canali più popolari che è la posta elettronica. Si sta per imparare il processo di invio di e-mail dal terminale o uno script di shell da un sistema operativo Linux, utilizzando alcuni dei popolari strumenti CLI.
Questo tutorial ti aiuterà a inviare e-mail critiche a livello di server come rapporti Cron, registri di script, registrazioni dei clienti, ricevute, estratti conto bancari via e-mail. Ci sono molti modi per inviare e-mail dal server, ma cerchiamo di esplorare lo strumento che è facile da installare e facile da codificare.
Con semplici librerie e piccole configurazioni, puoi avere uno strumento CLI nel tuo sistema operativo Linux che puoi usare per inviare mail dal terminale.
Prerequisiti
- Sistema operativo Linux
- Configurazioni SMTP (dettagli server SMTP e credenziali di autenticazione)
- Il tuo editor preferito (opzionale)
- Configura Gmail SMTP/ready con qualsiasi altro dettaglio server SMTP personalizzato. In questo tutorial, si sta per utilizzare Gmail SMTP per inviare e-mail, in modo da assicurarsi che;
undefinedundefined
Google server SMTP configurazioni sarebbe simile a questa:
- Server SMTP/Hostname: smtp.gmail.com
- nome utente SMTP:
- password SMTP:
- Porta SMTP: 587
- TLS/SSL: Richiesto
il Suo tempo per ora aprite il terminale
Ci sono vari strumenti e librerie che si possono installare per inviare e-mail dal terminale. Poche delle biblioteche popolari sono:
- sSMTP
- Mailx
In questo tutorial, imparerai i passaggi su come installare e utilizzare sSMTP per inviare mail dalla riga di comando di Linux. Clicca qui, nel caso in cui si desidera imparare come installare e utilizzare Mailx per inviare mail dalla riga di comando di Linux.
Come installare sSMTP per inviare mail dalla riga di comando (CLI) di Linux
Passo 1
Utilizzare il comando seguente per installare ssmtp:
sudo apt-get install ssmtp
Opzionale:
Gli utenti CentOS possono utilizzare il comando seguente per installare ssmtp:
sudo yum install ssmtp
CentOS, potrebbe essere visualizzato un errore durante l’installazione come “pacchetto ssmtp non disponibile”, in questo caso al di sotto di comando, sarà utile per risolvere il problema:
sudo yum --enablerepo=extras install epel-release
Passo 2
una Volta ssmtp installato con successo, è necessario effettuare il seguente globale configurazioni necessarie per l’invio della posta.
Apri il seguente file nel tuo editor preferito:
sudo vim /etc/ssmtp/ssmtp.conf
Modificare il file di cui sopra con i dettagli di seguito:
mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
La configurazione di cui sopra sta per essere utilizzato per inviare e-mail utilizzando il tuo SMTP Gmail. Nel caso in cui si desideri utilizzare un altro SMTP di terze parti, menzionare il nome host dello stesso. ad esempio, se si desidera utilizzare Pepipost SMTP, quindi invece di smtp.gmail.com, lei ha bisogno di menzionare smtp.pepipost.com nel parametro mailhub. mailhub è usato per l’indirizzo del server SMTP che consiste in due parti host: port
Ora sei pronto per inviare mail dalla riga di comando (CLI).
Passo 3
Esistono diversi modi per utilizzare il comando ssmtp per inviare e-mail.
Caso 1: Inviare una Mail Direttamente Dalla Riga di Comando
Per questo, copia-incolla il seguente comando, e sei pronto per inviare e-mail da riga di comando:
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv
-vvv è il livello di dettaglio per vedere i log durante l’invio della mail
Caso 2: Inviare una Mail Da Uno Script di Shell
È possibile utilizzare lo stesso ssmtp per inviare mail da uno script di shell troppo. Per questo, apri il tuo editor preferito e crea un file di script di shell con nome saymail.shand copia-incolla il codice qui sotto:
#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO
Assicurarsi di aver impostato il diritto di accesso autorizzazione al file di script. In caso contrario, ecco il comando per impostare l’autorizzazione:
$ sudo chmod 755 mail.sh
Ora, il codice è pronto per essere eseguito. Basta eseguire lo script di shell usando il comando seguente:
$ sudo ./mail.sh
Spero che ora tu sia in grado di inviare mail usando anche lo script della shell.
Di seguito sono riportati alcuni errori / eccezioni che potresti incontrare durante l’invio della posta usando ssmtp:
Errore 1
Nel caso in cui durante l’invio dell’e-mail, if potrebbe ottenere l’errore seguente come output:
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$
Soluzione: In tal caso, prova a seguire come soluzione:
- Abilita “Consenti app meno sicura” nelle impostazioni degli account Google, come spiegato nella sezione prerequisiti di cui sopra.
- Le credenziali di accesso fornite possono non essere valide. Assicurati di avere le credenziali corrette.
Una volta risolto il problema, eseguire nuovamente lo script della shell e l’output di successo sarà simile a questo;
$ sudo ./mail.sh
Uscita:
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