Script Bash per inviare email

Bash Script Send Email



La posta elettronica è un mezzo di comunicazione molto comune nel mondo di oggi. Chiunque può facilmente comunicare o condividere qualsiasi documento con amici, familiari e colleghi inviando l'e-mail. In genere, le persone utilizzano qualsiasi server di posta gratuito come Gmail, Yahoo, Hotmail ecc. Per inviare l'e-mail. Ma puoi inviare facilmente e-mail dalla riga di comando nel sistema operativo Linux. Esistono molti modi per inviare e-mail in Linux. Alcuni modi comuni e semplici per inviare e-mail nel sistema operativo Ubuntu dal terminale sono mostrati in questo tutorial.

Inizializzazione:

Sono disponibili molti comandi Linux per inviare e-mail dalla riga di comando o utilizzando uno script bash. Ma qualsiasi comando di invio di posta elettronica non funzionerà se nessun server SMTP è configurato correttamente nel sistema. Puoi configurare il tuo server SMTP per inviare e-mail dalla riga di comando oppure puoi utilizzare qualsiasi server SMTP gratuito di qualsiasi noto provider di servizi di posta elettronica come Gmail o Yahoo. In questo tutorial viene utilizzato il server SMTP di un account Gmail. Per eseguire questa attività, devi selezionare un account Gmail e abilitare l'opzione 'Consenti app meno sicure' per quell'account per inviare l'e-mail. Puoi visitare il seguente tutorial per abilitare questa opzione.







https://linuxhint.com/how-to-send-email-from-php/



Dopo aver abilitato questa opzione, devi aprire il file '/etc/ssmtp/ssmtp.conf' con privilegio di 'root' e aggiungere le seguenti righe alla fine del file. Devi impostare il tuo indirizzo email su 'AuthUser' e la tua password email su 'AuthPass' per completare la configurazione.



Usa STARTTLS=SI
DaLine Override=SI
radice=amministratore@esempio.com
mailhub=smtp.gmail.com:587
AuthUser=nome utente@gmail.com
AuthPass=password

Esempio 1: utilizzo del comando Sendmail

Uno dei comandi di invio di posta elettronica più diffusi di Linux è `sendmail`. L'utente può inviare facilmente e-mail dalla riga di comando utilizzando questo comando. Se il pacchetto Sendmail non è installato nel sistema, eseguire il comando seguente per installare il pacchetto.





$sudoadattoinstallaressmtp

Supponiamo che il contenuto dell'email sia archiviato in un file denominato 'email.txt' con il seguente contenuto. Qui, il testo dopo 'Oggetto:' verrà inviato come oggetto dell'email e la parte restante verrà inviata come corpo dell'email.

email.txt



Oggetto: Invio di e-mail tramite sendmail
Test del corpo dell'email

Esegui il comando 'sendmail' con l'indirizzo email del destinatario come il seguente comando.

$inviare una mailnome utente@gmail.com<email.txt

Esempio 2: utilizzo del comando 'mail'

Il comando più comune per inviare email in Linux è il comando `mail`. Questo comando non è installato su Ubuntu per impostazione predefinita. Esegui il seguente comando per installare il comando `mail`.

$sudoadattoinstallaremailutils

Il seguente comando mostrerà la versione di questo comando se è installato nel sistema.

$posta-V

L'opzione '-s' viene utilizzata nel comando 'mail' per definire l'oggetto dell'e-mail. Esegui il comando 'mail' con l'opzione '-s' con l'oggetto dell'email e l'indirizzo email del destinatario come il seguente comando. Richiederà Cc: indirizzo. Se non vuoi utilizzare il campo Cc:, lascialo vuoto e premi invio. Digita il corpo del messaggio e premi Ctrl+D per inviare l'e-mail.

$posta-S 'soggetto'nome utente@gmail.com

Se vuoi aggiungere il corpo del messaggio di posta elettronica nel comando, usa '<<<’ operator like the following command.

$posta-S 'soggetto del messaggio'nome utente@gmail.com<<< 'testare il corpo del messaggio'

Puoi anche aggiungere l'indirizzo email del mittente con il comando `mail` utilizzando l'opzione '-a'. Il seguente comando invierà l'e-mail con l'oggetto, 'oggetto del messaggio', il nome e l'indirizzo e-mail del mittente, 'Admin<[e-mail protetta]>' e l'indirizzo email del destinatario,[e-mail protetta]e corpo del messaggio, 'messaggio di prova'.

$ mail-S 'soggetto del messaggio' -aDa: amministratore<amministratore@esempio.com >
nome utente@gmail.com<<< 'messaggio di prova'

È inoltre possibile inviare il corpo di un messaggio di posta elettronica utilizzando il comando echo e pipe( | ). Il comando seguente utilizza il comando pipe (|) per inviare il corpo del messaggio.

$buttato fuori 'messaggio di prova' |posta-S 'soggetto del messaggio'nome utente@esempio.com

La posta elettronica può essere inviata a più destinatari utilizzando il comando 'mail' e aggiungendo gli indirizzi dei destinatari separando la virgola. Il seguente comando verrà inviato un'e-mail a due destinatari.

$posta-S 'E-mail di prova'nomeutente1@esempio.com , nomeutente2@esempio.com<test.txt

Esempio 3: utilizzo del comando `mutt`

Come il comando 'mail', il comando 'mutt' non è installato su Ubuntu per impostazione predefinita. Esegui il seguente comando per installare il comando `mutt`.

$sudoadattoinstallarebastardo

Il comando `mutt` funziona in modo simile al comando `mail` ma il comando `mutt` ha un proprio editor per inviare l'e-mail. Eseguire il comando seguente con l'indirizzo e-mail valido per inviare l'e-mail.

$buttato fuorimessaggio di prova|bastardo-S 'E-mail di prova'nome utente@esempio.com

Puoi allegare qualsiasi file usando l'opzione '-a' con il comando 'mail' o 'mutt'. Il seguente comando allegherà il file items.txt durante l'invio dell'e-mail.

$buttato fuori 'messaggio di prova' |bastardo-S 'soggetto del messaggio' -aarticoli.txt-nome utente@gmail.com

Esempio-4: utilizzo del comando 'SSMTP'

Un altro comando di posta elettronica è il comando `ssmtp`. Se ssmtp non è stato installato prima, installa prima il pacchetto. Il comando di installazione per ssmtp è mostrato nell'esempio-1. I comandi ssmtp e sendmail funzionano in modo simile.

Esegui il seguente comando con l'indirizzo email valido. Digita l'oggetto e il corpo dell'email. Premi ctrl+D per uscire e inviare l'e-mail.

$nome utente ssmtp@gmail.com

Esempio-5: utilizzo del comando mailx

Puoi inviare contenuto HTML come corpo dell'email senza inviare semplicemente il messaggio di testo. Crea un file HTML denominato 'test.html' da utilizzare come corpo del messaggio.

test.html

< html >
< corpo >>
< h3 >Invio di e-mail</ h3 >
< fare dimensione='2' colore='netto'>Test del corpo del messaggio</ fare >
<</ corpo >
</ html >

Il comando 'mailx' funziona come il comando 'mail'. Devi menzionare Content-Type come text/html per inviare contenuto HTML come corpo del messaggio nel comando `mailx`. Il seguente comando invierà il contenuto del file 'test.html' come corpo del messaggio di posta elettronica.

$ mailx-a 'Tipo di contenuto: testo/html' -S 'Invio e-mail utilizzando mailx '
<test.html'[e-mail protetta]'

Quando controllerai la posta in arrivo dell'account e-mail del destinatario, l'elenco delle e-mail verrà mostrato come l'immagine seguente.

Conclusione

Dopo aver praticato correttamente i comandi di cui sopra, spero che il lettore sia in grado di inviare facilmente e-mail dalla riga di comando in Linux.