
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 usando 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 "Subject" e altre intestazioni, 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 effettua la conversione in 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 a posto con le basi! Ora vediamo cos'altro puoi fare per ottimizzare la tua configurazione. Ecco alcune idee:
Usa un pianificatore come cron per fare test base 'funziona', che possono fungere da base o persino ampliare il tuo sistema di monitoraggio.
Misurare la latenza quando ci si connette e si chiude una connessione a un server di posta.
Testare diverse versioni TLS e cifrature
Non sarai lasciato solo qui, ti mostrerò come fare tutto quanto sopra. Questa volta stiamo iniettando nei nostri server SparkPost.
Invia un messaggio ai nostri server SparkPost (Come creare la chiave API qui, e le opzioni SMTP ). Una volta ottenuta la chiave di autenticazione, incolla il comando (assicurati di tenere la chiave al sicuro e protetta!) :
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 stai cercando consigli su come risolvere i problemi di invio tramite SMTP ai nostri server, dai un'occhiata a questo articolo. Per test di connessione SMTP di base, puoi anche verificare le connessioni SMTP utilizzando sessioni telnet manuali.
Riflettendo sulle migliori pratiche di sicurezza, SparkPost ha deprecato tutte le versioni TLS precedenti tranne v1.2 e successive. Se vuoi vedere se il tuo sistema è compatibile, SWAKS ti permette di testare specifiche versioni TLS e cifrature.
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 con “tlsv1_1” e utilizzalo su altri domini per osservare la loro compatibilità.
E se vuoi cronometrare quanto velocemente risponde un server di posta? SWAKS può passare attraverso il ciclo SMTP e disimpegnarsi in alcuni punti senza inviare un messaggio, e puoi cronometrarlo usando il comando “time” che mostra alla fine 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 codice di un file di configurazione per impostare i parametri predefiniti:
$ Cd $HOME $ vim .swaksrc # Copia e incolla questo nel file nella .swaksrc file --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, digita semplicemente “swaks“ e precompila tutto inviandolo per la sua strada! Ancora meglio, puoi sovrascrivere aggiungendolo alla riga di comando, diciamo ad esempio che vuoi un destinatario diverso:
swaks -t recipient@somewherelse.com