
Questo è uno strumento da riga di comando che può inviare email tramite SMTP. Non è solo facile da usare, ma fornisce anche una miriade di opzioni quando necessario.
Lo scorso anno, abbiamo pubblicato un articolo sul blog che mostra come utilizzare lo strumento telnet onnipresente e molto utile per verificare una connessione SMTP.
Il passo successivo è semplificare il processo manuale utilizzando uno strumento straordinario "livello successivo" (si riferisce a se stesso come il Coltellino Svizzero delle email) chiamato SWAKS. Questo è uno strumento da riga di comando che può inviare email tramite SMTP. Non è solo facile da usare, ma offre anche simultaneamente una miriade di opzioni quando necessario.
All'inizio, ero intimidito dalla quantità di opzioni, ma è perfettamente utilizzabile con le opzioni più basilari. Se hai qualche problema, basta aggiungere questa pagina ai preferiti, copiare e incollare gli esempi e modificarli a tuo piacimento. Al termine di questo blog, una volta acquisita familiarità e non avendo una grande varietà/dinamica nei tuoi comandi SWAKS, ti mostrerò come creare un file di configurazione che pre-imposta tutti i tuoi parametri predefiniti. Questo rende l'esecuzione di SWAKS letteralmente a un pulsante (OK, "tasto") di distanza!
Per lo scopo di questo esercizio, eseguiremo i comandi da un server CentOS 7 ma i comandi sono simili su tutte le piattaforme supportate. Come menzionato sopra, se sei bloccato, copia e incolla direttamente nel tuo sistema e modifica ciò di cui hai bisogno. Ecco le basi:
Installa
sudo yum install epel-release -y && sudo yum install swaks -y
Una volta installato, ecco la sintassi di base per inviare un messaggio. In questo esempio, stiamo utilizzando l'indirizzo locale del server:
swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com
Invia un messaggio con un'intestazione di linea "Subject" + altre intestazioni e quindi includi un testo "Hello World!" nel corpo:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --header "Subject: Hello! This is the subject header\Second_header:123\nThird_Header:XYZ" --body "Hello World!"
Ecco come aggiungere un allegato, dove SWAKS fa la conversione base64 per te, ottimo per testare i limiti di dimensione dei messaggi:
swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz
Sei praticamente pronto per le basi! Ora vediamo come puoi migliorare il tuo setup. Ecco alcune idee:
Usa un pianificatore come cron per eseguire test di base "funziona" che possono fungere da base o persino aumentare il tuo sistema di monitoraggio.
Misura la latenza quando si collega e si chiude una connessione a un server di posta.
Prova diverse versioni e cifrature TLS
Non sarai lasciato solo qui, ti mostrerò come fare tutto quanto sopra. Questa volta inietteremo nei nostri server SparkPost.
Invia un messaggio ai nostri server SparkPost (Come creare qui la chiave API, e le opzioni SMTP). Una volta ottenuta la chiave di autenticazione, inseriscila nel comando (assicurati di mantenere la chiave al sicuro!):
swaks -server smtp.sparkpostmail.com:587 -tls --auth-user SMTP_Injection --auth-password [your auth key] -f me@from.com -t them@recipient.com
Se cerchi indicazioni su come risolvere problemi di invio tramite SMTP ai nostri server, consulta questo articolo. Per testare le connessioni SMTP di base, puoi anche verificare le connessioni SMTP utilizzando sessioni telnet manuali.
Ecorso le migliori pratiche di sicurezza, SparkPost ha deprecato tutte le versioni TLS più vecchie eccetto la v1.2 e successive. Se vuoi vedere se il tuo sistema è compatibile, SWAKS consente di testare versioni TLS e cifrature specifiche.
swaks -s smtp.sparkpostmail.com -tls -p 587 -f me@from.com -t them@recipient.com -tlsp tlsv1_2 --tls-cipher ECDHE-RSA-AES128-GCM-SHA256
In questo esempio, stiamo usando "tlsv1_2" ma vai avanti e cambia in "tlsv1_1" e usalo su altri domini per osservare la loro compatibilità.
E se vuoi cronometrare la velocità di risposta di un server di posta? SWAKS può attraversare il ciclo SMTP e disattivarsi in alcuni punti senza inviare un messaggio, e puoi cronometrare utilizzando il comando "time" che mostra al termine dell'output:
$ time swaks -s 127.0.0.1 -f sender@from.com -t them@recipient.com test--quit-after RCPT === Trying 127.0.0.1:25... === Connected to 127.0.0.1. … -> RCPT TO:<them@recipient.com> <- 250 2.1.5 <them@recipient.com> ok -> QUIT <- 221 2.0.0 v1pmta5.jasdevism.com says goodbye === Connection closed with remote host. real 0m0.049s user 0m0.038s sys 0m0.009s
Come promesso, se sei arrivato fin qui la ricompensa è questo semplice canto un file di configurazione per impostare i parametri di default:
$ Cd $HOME $ vim .swaksrc # Copia e incolla questo nel file nel file .swaksrc --from swakstest@jasdevism.com h-From: "Jas Swaks" <swakstest@jasdevism.com> -s 127.0.0.1 --body "This is a test!" --to jsingh@sparkpost.com
Una volta salvato, basta digitare “swaks“ e pre-compila tutto e lo invia per la sua strada! Ancora meglio, puoi sovrascrivere aggiungendolo sulla riga di comando, ad esempio se desideri un destinatario diverso:
swaks -t recipient@somewherelse.com