Need help? Chat now!

Hostwinds Tutorial

Cerca risultati per:


Sommario


Cos'è smtp-cli?
Prerequisiti
Impostare
Dipendenze
CentOS / Fedora
Ubuntu / Debian
Scarica il repository SMTP-CLI
Creare un file di password e-mail
Invio di posta con smtp-cli
Ecco il modello di codice per uno script bash
Ed ecco l'email che è stata inviata
Alcuni altri utili argomenti smtp-cli
Risoluzione dei problemi

Come utilizzare smtp-cli per creare un semplice agente di invio della posta (Linux)

Tag: Email,  Linux 

Cos'è smtp-cli?
Prerequisiti
Impostare
Dipendenze
CentOS / Fedora
Ubuntu / Debian
Scarica il repository SMTP-CLI
Creare un file di password e-mail
Invio di posta con smtp-cli
Ecco il modello di codice per uno script bash
Ed ecco l'email che è stata inviata
Alcuni altri utili argomenti smtp-cli
Risoluzione dei problemi

Cos'è smtp-cli?

Per capire meglio cosa è SMTP-CLI, parliamo di ciò che non è;SMTP-CLI non è un server di posta elettronica o un agente relè;Non è anche un modo per inviare elevati volumi di posta.È un client di posta elettronica che consente l'invio di testo, html, file e immagini dalla riga di comando e dagli script.

Invece di creare un altro server di posta elettronica, è possibile utilizzare SMTP-CLI per inviare aggiornamenti da VPS (s) tramite un account e-mail remoto per monitorare la salute o lo stato. È inoltre possibile impostare un lavoro di cron per inoltrare i registri come parte dell'induttore di sicurezza del server. Ciò consente al server di eseguire più o meno incustodito a meno che non vengano avvicinati degli errori o dei limiti.

Prerequisiti

  • un server di posta elettronica remoto con il tuo account di posta elettronica
  • a VPS that requires mail to be sent outbound
  • Accesso dalla riga di comando a VPS sopra (tramite SSH o Get VNC)

Impostare

  • 1 Hostwinds VPS con CentOS 7
  • un account di posta elettronica cPanel
  • per l'accesso verrà utilizzato il client SSH Putty

Dipendenze

Usereremo Git per prendere lo script SMTP-CLI da GitHub. Se non lo hai già installato, puoi installarlo come questo:

CentOS / Fedora

# yum install -y git

Ubuntu / Debian

# apt-get install -y git

Scarica il repository SMTP-CLI

# git clone https://github.com/mludvig/smtp-cli.git

Lo script SMTP-CLI (la parte le esecuzioni) si trova all'interno di una directory chiamata SMTP-CLI, e all'interno è un file chiamato SMTP-CLI (il flag -l nel comando ci consente di guardare gli attributi del file per assicurarti che sia eseguibile).

# ls -l smtp-cli

Se quelle "X" sono invece "-", quindi eseguire questo comando per rendere il file eseguibile.

# chmod +x smtp-cli/smtp-cli

Ora possiamo testare per vedere se funziona.

# smtp-cli/smtp-cli

Il che dovrebbe comportare un errore come questo

Strano che un errore sia corretto, ma poiché stiamo solo testando per assicurarci che lo script sia scaricato ed eseguibile, questo è tutto ciò di cui abbiamo bisogno in questo momento.

Ora controlleremo il nostro PATH globale (dove il VPS controlla quando eseguo le cose dalla riga di comando senza un percorso completo)

# echo $PATH

E copia lo smtp-cli nella directory sbin dell'utente all'interno del tuo PATH predefinito.

# cp smtp-cli/smpt-cli /usr/local/sbin
ls -l /usr/local/sbin/smtp*

Ora possiamo eseguire SMTP-CLI da qualsiasi directory sul VPS senza preoccuparti di includere il percorso completo del file.

Creare un file di password e-mail

Poiché il posizionamento della password non crittografata in uno script è praticamente più insicuro, per non parlare del modo difficile, il modo per gestire una password, creeremo un file che contiene le nostre informazioni sulla password. Questo ci consente di aggiornare facilmente la nostra password e richiede almeno un attore dannoso per cercare le informazioni.

Dal momento che sono in esecuzione come utente root e creando un cronjob root, questo file sarà nella directory / root / directory. Il tuo lavoro di Cron potrebbe essere nel tuo utente Crontb a seconda dei privilegi che ti è concesso dal tuo amministratore di sistema, nel qual caso potresti memorizzare questo in / home / username.

# touch /root/.passwd
echo 'SomeRandomPassword' > /root/.passwd

Si noti che "someerandompassword" dovrà essere il testo in chiaro della tua password e-mail effettiva per il tuo account e-mail remoto.

Invio di posta con smtp-cli

Ora arriviamo alla parte buona, inviando un'e-mail come parte di uno script o dalla riga di comando. Lo testerò inviando il file che abbiamo creato come parte della nostra guida vnstat.

Come nota, la parte $ (alcuni comandi) di seguito consente di eseguire un comando inline e utilizzare l'output di quel comando come input per l'argomento.

# smtp-cli --verbose --server mail.emaildomain.TLD:587 --enable-auth --user smtp-cli_guide@emaildomain.TLD --pass $(cat /root/.passwd) --from smtp-cli_guide@emaildomain.TLD --to test2@emaildomain.TLD --subject VPS-stats --attach /var/www/html/vps_bandwidth_stats.png

Ora che sappiamo che funziona, possiamo inserire il comando in uno script bash o cron job.

Ecco il modello di codice per uno script bash

#!/etc/bash

smtp-cli --verbose --server mailservername.emaildomain.TLD:587 --enable-auth --user login-user@emaildomain.TLD --pass $(cat /root/.passwd) --from email_orinator@emaildomain.TLD --to email_destination@emaildomain.TLD --subject subject-line --attach /full/path/filename.tosend >> /path/to/logfile.log

Ed ecco l'email che è stata inviata

Alcuni altri utili argomenti smtp-cli

--help
--body-plain=<text|filename>
--body-html=<text|filename>

Sebbene questo esempio fornisca la possibilità di impostare script o cronjobs, questo semplice mailer può anche inviare posta utilizzando variabili globali o output per altri script di monitoraggio; Tutti questi strumenti possono inviare semplici avvisi o dati diagnostici complessi alla tua e-mail in base a un intervallo regolare o a un evento di attivazione.

Risoluzione dei problemi

Possono sorgere diversi problemi diversi quando si utilizza lo script. Il primo problema sarebbe il modo in cui il server di posta è autentica. Inserite un indirizzo email completo o solo un nome utente? Questo è ciò di cui avresti bisogno dopo l'argomento -User. L'esempio si assume che inserisci l'indirizzo email completo come -User. Utilizzare quali credenziali normalmente usi per il tuo server.

La seconda area problematica è il campo –from. Assicurati che questo sia l'account e-mail a cui stai effettuando l'accesso. Non puoi inviare posta da un account che non controlli.

Il terzo è il nome del server e la selezione della porta del campo -Server. Questo nome dovrebbe essere un nome di dominio completo del tuo server di posta elettronica in uscita seguito da A: PORTNUMBER. Le porte standard per SMTP sono 25, 587, 465.

Infine, il campo -to deve essere un indirizzo email valido, o non raggiungerà mai una destinazione.

Scritto da Paul Schene  /  luglio 10, 2020