Hoe SWAKS te gebruiken met SparkPost

Bird

24 jun 2021

E-mail

1 min read

Hoe SWAKS te gebruiken met SparkPost

Belangrijkste punten

    • SWAKS (Swiss Army Knife for SMTP) is een krachtig command-line programma voor het verzenden van e-mails en het testen van SMTP-verbindingen op een flexibele, script-vriendelijke manier.

    • Het vereenvoudigt handmatig SMTP-testen in vergelijking met telnet door duidelijke vlaggen, authenticatieverwerking, bijlagen, TLS-testen, timing en aangepaste headers aan te bieden.

    • De tool werkt op meerdere platforms en is gebruiksvriendelijk voor beginners, ondanks zijn uitgebreide mogelijkheden.

    • Basisgebruik omvat het verzenden van een eenvoudig bericht, het toevoegen van onderwerpregels, het opnemen van headers en het verzenden van bijlagen zonder handmatige base64-conversie.

    • SWAKS is ideaal voor betrouwbaarheidstests en monitoring — het kan via cron worden gepland om regelmatige 'werkt het nog steeds?' testverzendingen uit te voeren.

    • Het kan ook latentie en verbindingssnelheid meten door SMTP-handshakes te timen zonder een volledige e-mail te verzenden.

    • SWAKS ondersteunt gedetailleerde TLS-testen, inclusief validatie van compatibiliteit met moderne standaarden zoals TLS 1.2 (vereist door SparkPost).

    • Bij gebruik van SparkPost stelt SWAKS eenvoudig injectie in SparkPost SMTP-servers mogelijk via een API-sleutel voor authenticatie.

    • TLS-versie forcing (bijv. tlsv1_2) stelt verzenders in staat hun omgevingen te testen en te zorgen voor naleving van SparkPost's afschaffingen.

    • SWAKS biedt gedetailleerde debugging, wat handig is voor het valideren van SMTP-configuraties en het diagnosticeren van mislukte verbindingen.

    • Een .swaksrc configuratiebestand stelt gebruikers in staat standaardparameters op te slaan, zodat één opdrachtverzending voor herhaalde tests mogelijk is.

    • SWAKS ondersteunt command-line overrides, waardoor gebruikers elk veld dynamisch kunnen aanpassen wanneer nodig.

Q&A Hoogtepunten

  • Wat is SWAKS?

    Een flexibel SMTP-testtool voor de opdrachtregel, ook bekend als het 'Zwitsers zakmes' voor e-mail.

  • Waarom SWAKS gebruiken in plaats van telnet?

    Het automatiseert de SMTP-handshake, ondersteunt authenticatie, TLS, bijlagen en headers, waardoor testen gemakkelijker en krachtiger wordt.

  • Welke platforms ondersteunt SWAKS?

    Linux, macOS, en de meeste Unix-achtige systemen, met een vergelijkbare syntax tussen hen.

  • Hoe stuur ik een basis test e-mail met SWAKS?

    Door een eenvoudige opdracht uit te voeren waarin de ontvanger, afzender en serveradres worden gespecificeerd.

  • Kan SWAKS berichten verzenden met onderwerpregels en aangepaste headers?

    Ja — het ondersteunt onderwerpen, van/naar overschrijvingen, en willekeurige headerinjectie.

  • Ondersteunt SWAKS het verzenden van bijlagen?

    Ja — en het handelt automatisch de base64-codering voor je af.

  • Kan SWAKS helpen TLS-compatibiliteit testen?

    Absoluut — je kunt specifieke TLS-versies (zoals TLS 1.2) afdwingen of ciphers-ondersteuning testen.

  • Waarom is TLS 1.2 belangrijk bij het verzenden naar SparkPost?

    Oudere TLS-versies zijn verouderd; SparkPost vereist TLS 1.2+ voor beveiligde verbindingen.

  • Hoe kan ik mij authenticeren met SparkPost bij gebruik van SWAKS?

    Door uw SparkPost API-sleutel te gebruiken als het SMTP-wachtwoord tijdens het commando.

  • Kan SWAKS prestaties of latentie meten?

    Ja — met behulp van de time opdracht en gedeeltelijke SMTP-cycli om de handshakesnelheid te meten.

  • Ondersteunt SWAKS automatisering?

    Ja — je kunt het uitvoeren via cronopdrachten om SMTP-omgevingen herhaaldelijk te testen.

  • Wat is een .swaksrc-bestand en waarom zou je het gebruiken?

    Het is een configuratiebestand dat de standaard SWAKS-parameters opslaat, waardoor het verzenden met één commando met optionele overschrijvingen mogelijk is.

Dit is een opdrachtregeltool die e-mails kan verzenden via SMTP. Het is niet alleen gemakkelijk te gebruiken, maar biedt ook tegelijkertijd een veelheid aan opties wanneer dat nodig is.

Vorig jaar hebben we een blogartikel gepubliceerd dat laat zien hoe je de alomtegenwoordige en zeer nuttige telnet-tool kunt gebruiken om een SMTP-verbinding te controleren.

De volgende stap is om het handmatige proces te vereenvoudigen door gebruik te maken van een geweldig 'next level' gereedschap (het noemt zichzelf het Zwitserse zakmes van e-mail) genaamd SWAKS. Dit is een commandoregelgereedschap dat e-mails via SMTP kan verzenden. Het is niet alleen gemakkelijk te gebruiken maar biedt ook tegelijkertijd een groot aantal opties wanneer dat nodig is.

In het begin was ik geïntimideerd door de hoeveelheid opties, maar het is perfect bruikbaar met de meest basale opties. Als je problemen hebt, markeer dan gewoon deze pagina, kopieer en plak de voorbeelden en pas ze aan naar uw voorkeur. Aan het einde van deze blog, zodra je enige bekendheid hebt en er niet veel variatie/dynamiek zit in je SWAKS-commando's, zal ik je laten zien hoe je een configuratiebestand kunt maken dat alle standaardparameters vooraf instelt. Dit maakt het letterlijk een druk op een knop (OK, 'toets') weg om SWAKS uit te voeren! 

Voor het doel van deze oefening gaan we de commando's uitvoeren vanaf een CentOS 7-server, maar de commando's zijn vergelijkbaar op alle ondersteunde platforms. Zoals hierboven vermeld, als je vastloopt, kopieer en plak dan gewoon direct in je systeem en wijzig wat je nodig hebt. Hier zijn de basisprincipes:

Vorig jaar hebben we een blogartikel gepubliceerd dat laat zien hoe je de alomtegenwoordige en zeer nuttige telnet-tool kunt gebruiken om een SMTP-verbinding te controleren.

De volgende stap is om het handmatige proces te vereenvoudigen door gebruik te maken van een geweldig 'next level' gereedschap (het noemt zichzelf het Zwitserse zakmes van e-mail) genaamd SWAKS. Dit is een commandoregelgereedschap dat e-mails via SMTP kan verzenden. Het is niet alleen gemakkelijk te gebruiken maar biedt ook tegelijkertijd een groot aantal opties wanneer dat nodig is.

In het begin was ik geïntimideerd door de hoeveelheid opties, maar het is perfect bruikbaar met de meest basale opties. Als je problemen hebt, markeer dan gewoon deze pagina, kopieer en plak de voorbeelden en pas ze aan naar uw voorkeur. Aan het einde van deze blog, zodra je enige bekendheid hebt en er niet veel variatie/dynamiek zit in je SWAKS-commando's, zal ik je laten zien hoe je een configuratiebestand kunt maken dat alle standaardparameters vooraf instelt. Dit maakt het letterlijk een druk op een knop (OK, 'toets') weg om SWAKS uit te voeren! 

Voor het doel van deze oefening gaan we de commando's uitvoeren vanaf een CentOS 7-server, maar de commando's zijn vergelijkbaar op alle ondersteunde platforms. Zoals hierboven vermeld, als je vastloopt, kopieer en plak dan gewoon direct in je systeem en wijzig wat je nodig hebt. Hier zijn de basisprincipes:

Vorig jaar hebben we een blogartikel gepubliceerd dat laat zien hoe je de alomtegenwoordige en zeer nuttige telnet-tool kunt gebruiken om een SMTP-verbinding te controleren.

De volgende stap is om het handmatige proces te vereenvoudigen door gebruik te maken van een geweldig 'next level' gereedschap (het noemt zichzelf het Zwitserse zakmes van e-mail) genaamd SWAKS. Dit is een commandoregelgereedschap dat e-mails via SMTP kan verzenden. Het is niet alleen gemakkelijk te gebruiken maar biedt ook tegelijkertijd een groot aantal opties wanneer dat nodig is.

In het begin was ik geïntimideerd door de hoeveelheid opties, maar het is perfect bruikbaar met de meest basale opties. Als je problemen hebt, markeer dan gewoon deze pagina, kopieer en plak de voorbeelden en pas ze aan naar uw voorkeur. Aan het einde van deze blog, zodra je enige bekendheid hebt en er niet veel variatie/dynamiek zit in je SWAKS-commando's, zal ik je laten zien hoe je een configuratiebestand kunt maken dat alle standaardparameters vooraf instelt. Dit maakt het letterlijk een druk op een knop (OK, 'toets') weg om SWAKS uit te voeren! 

Voor het doel van deze oefening gaan we de commando's uitvoeren vanaf een CentOS 7-server, maar de commando's zijn vergelijkbaar op alle ondersteunde platforms. Zoals hierboven vermeld, als je vastloopt, kopieer en plak dan gewoon direct in je systeem en wijzig wat je nodig hebt. Hier zijn de basisprincipes:

Installeren

sudo yum install epel-release -y && sudo yum install swaks -y

Nadat het is geïnstalleerd, is hier de basis syntax om een bericht te versturen. In dit voorbeeld gebruiken we het lokale adres van de server:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Verstuur een bericht met een "Subject" regelkop + andere headers en voeg dan een "Hello World!" tekst toe in de body:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Hier is hoe je een bijlage toevoegt, waarbij SWAKS de base64-conversie voor je doet, geweldig voor het testen van groottebeperkingen van berichten:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

Je bent aardig klaar met de basis! Laten we nu kijken hoe je je setup nog verder kunt verbeteren. Hier zijn enkele ideeën:

  • Gebruik een planner zoals chron om basis 'werkt het' tests uit te voeren die als een basis kunnen werken  of zelfs je monitoringssysteem kunnen verbeteren.

  • Meet latentie bij het verbinden en sluiten van een verbinding met een mailserver.

  • Test verschillende TLS-versies en coderingen

Je wordt hier niet alleen gelaten, ik zal je laten zien hoe je al het bovenstaande kunt doen. Deze keer gaan we injecteren in onze SparkPost-servers.

Stuur een bericht naar onze SparkPost-servers (Hoe de API key aan te maken, en de SMTP opties). Zodra je je authenticatiesleutel hebt, plak je deze in het commando (zorg ervoor dat je de sleutel veilig bewaart!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Als je op zoek bent naar begeleiding over het oplossen van problemen bij het verzenden via SMTP naar onze servers, bekijk dan ons SMTP troubleshooting artikel. Voor basis SMTP-verbindingstesten kun je ook SMTP-verbindingen verifiëren met handmatige telnet-sessies.

In overeenstemming met de beste beveiligingspraktijken heeft SparkPost alle oudere TLS-versies behalve v1.2 en hoger verwijderd. Als je wilt zien of je systeem compatibel is, staat SWAKS je toe om specifieke TLS-versies en coderingen te testen.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

In dit voorbeeld gebruiken we "tlsv1_2", maar ga je gang en verander dat in "tlsv1_1" en gebruik het op andere domeinen om hun compatibiliteit te observeren.

Wat als je de tijd wilt meten die een mailserver nodig heeft om te reageren? SWAKS kan door de SMTP-cyclus gaan en op sommige punten uitstappen zonder een bericht te versturen, en je kunt het timen met het "time" commando dat aan het einde van de output wordt getoond:

$ 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
<

Zoals beloofd, als je zo ver bent gekomen is de beloning deze simpele manier om een configuratiebestand te gebruiken om standaard parameters in te stellen:

$ cd $HOME
$ vim .swaksrc

Kopieer en plak dit in het .swaksrc bestand:

--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

Zodra je het opslaat, typ je gewoon “swaks“ en het vult alles automatisch in en verstuurt het op zijn vrolijke weg! Nog beter, je kunt het overschrijven door het op de command line toe te voegen, bijvoorbeeld als je een andere ontvanger wilt:

swaks -t recipient@somewherelse.com
sudo yum install epel-release -y && sudo yum install swaks -y

Nadat het is geïnstalleerd, is hier de basis syntax om een bericht te versturen. In dit voorbeeld gebruiken we het lokale adres van de server:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Verstuur een bericht met een "Subject" regelkop + andere headers en voeg dan een "Hello World!" tekst toe in de body:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Hier is hoe je een bijlage toevoegt, waarbij SWAKS de base64-conversie voor je doet, geweldig voor het testen van groottebeperkingen van berichten:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

Je bent aardig klaar met de basis! Laten we nu kijken hoe je je setup nog verder kunt verbeteren. Hier zijn enkele ideeën:

  • Gebruik een planner zoals chron om basis 'werkt het' tests uit te voeren die als een basis kunnen werken  of zelfs je monitoringssysteem kunnen verbeteren.

  • Meet latentie bij het verbinden en sluiten van een verbinding met een mailserver.

  • Test verschillende TLS-versies en coderingen

Je wordt hier niet alleen gelaten, ik zal je laten zien hoe je al het bovenstaande kunt doen. Deze keer gaan we injecteren in onze SparkPost-servers.

Stuur een bericht naar onze SparkPost-servers (Hoe de API key aan te maken, en de SMTP opties). Zodra je je authenticatiesleutel hebt, plak je deze in het commando (zorg ervoor dat je de sleutel veilig bewaart!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Als je op zoek bent naar begeleiding over het oplossen van problemen bij het verzenden via SMTP naar onze servers, bekijk dan ons SMTP troubleshooting artikel. Voor basis SMTP-verbindingstesten kun je ook SMTP-verbindingen verifiëren met handmatige telnet-sessies.

In overeenstemming met de beste beveiligingspraktijken heeft SparkPost alle oudere TLS-versies behalve v1.2 en hoger verwijderd. Als je wilt zien of je systeem compatibel is, staat SWAKS je toe om specifieke TLS-versies en coderingen te testen.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

In dit voorbeeld gebruiken we "tlsv1_2", maar ga je gang en verander dat in "tlsv1_1" en gebruik het op andere domeinen om hun compatibiliteit te observeren.

Wat als je de tijd wilt meten die een mailserver nodig heeft om te reageren? SWAKS kan door de SMTP-cyclus gaan en op sommige punten uitstappen zonder een bericht te versturen, en je kunt het timen met het "time" commando dat aan het einde van de output wordt getoond:

$ 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
<

Zoals beloofd, als je zo ver bent gekomen is de beloning deze simpele manier om een configuratiebestand te gebruiken om standaard parameters in te stellen:

$ cd $HOME
$ vim .swaksrc

Kopieer en plak dit in het .swaksrc bestand:

--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

Zodra je het opslaat, typ je gewoon “swaks“ en het vult alles automatisch in en verstuurt het op zijn vrolijke weg! Nog beter, je kunt het overschrijven door het op de command line toe te voegen, bijvoorbeeld als je een andere ontvanger wilt:

swaks -t recipient@somewherelse.com
sudo yum install epel-release -y && sudo yum install swaks -y

Nadat het is geïnstalleerd, is hier de basis syntax om een bericht te versturen. In dit voorbeeld gebruiken we het lokale adres van de server:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Verstuur een bericht met een "Subject" regelkop + andere headers en voeg dan een "Hello World!" tekst toe in de body:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Hier is hoe je een bijlage toevoegt, waarbij SWAKS de base64-conversie voor je doet, geweldig voor het testen van groottebeperkingen van berichten:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

Je bent aardig klaar met de basis! Laten we nu kijken hoe je je setup nog verder kunt verbeteren. Hier zijn enkele ideeën:

  • Gebruik een planner zoals chron om basis 'werkt het' tests uit te voeren die als een basis kunnen werken  of zelfs je monitoringssysteem kunnen verbeteren.

  • Meet latentie bij het verbinden en sluiten van een verbinding met een mailserver.

  • Test verschillende TLS-versies en coderingen

Je wordt hier niet alleen gelaten, ik zal je laten zien hoe je al het bovenstaande kunt doen. Deze keer gaan we injecteren in onze SparkPost-servers.

Stuur een bericht naar onze SparkPost-servers (Hoe de API key aan te maken, en de SMTP opties). Zodra je je authenticatiesleutel hebt, plak je deze in het commando (zorg ervoor dat je de sleutel veilig bewaart!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Als je op zoek bent naar begeleiding over het oplossen van problemen bij het verzenden via SMTP naar onze servers, bekijk dan ons SMTP troubleshooting artikel. Voor basis SMTP-verbindingstesten kun je ook SMTP-verbindingen verifiëren met handmatige telnet-sessies.

In overeenstemming met de beste beveiligingspraktijken heeft SparkPost alle oudere TLS-versies behalve v1.2 en hoger verwijderd. Als je wilt zien of je systeem compatibel is, staat SWAKS je toe om specifieke TLS-versies en coderingen te testen.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

In dit voorbeeld gebruiken we "tlsv1_2", maar ga je gang en verander dat in "tlsv1_1" en gebruik het op andere domeinen om hun compatibiliteit te observeren.

Wat als je de tijd wilt meten die een mailserver nodig heeft om te reageren? SWAKS kan door de SMTP-cyclus gaan en op sommige punten uitstappen zonder een bericht te versturen, en je kunt het timen met het "time" commando dat aan het einde van de output wordt getoond:

$ 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
<

Zoals beloofd, als je zo ver bent gekomen is de beloning deze simpele manier om een configuratiebestand te gebruiken om standaard parameters in te stellen:

$ cd $HOME
$ vim .swaksrc

Kopieer en plak dit in het .swaksrc bestand:

--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

Zodra je het opslaat, typ je gewoon “swaks“ en het vult alles automatisch in en verstuurt het op zijn vrolijke weg! Nog beter, je kunt het overschrijven door het op de command line toe te voegen, bijvoorbeeld als je een andere ontvanger wilt:

swaks -t recipient@somewherelse.com

Andere nieuws

Lees meer uit deze categorie

A person is standing at a desk while typing on a laptop.

Het complete AI-native platform dat met uw bedrijf meegroeit.

A person is standing at a desk while typing on a laptop.

Het complete AI-native platform dat met uw bedrijf meegroeit.