Jak używać SWAKS z SparkPost

Ptak

24 cze 2021

Email

1 min read

Jak używać SWAKS z SparkPost

Kluczowe Wnioski

    • SWAKS (Swiss Army Knife for SMTP) to potężne narzędzie wiersza poleceń do wysyłania e-maili i testowania połączeń SMTP w elastyczny, przyjazny dla skryptów sposób.

    • Ułatwia ręczne testowanie SMTP w porównaniu do telnetu, oferując przejrzyste flagi, obsługę uwierzytelniania, załączniki, testowanie TLS, odmierzanie czasu i niestandardowe nagłówki.

    • Narzędzie działa na wielu platformach i jest przyjazne dla początkujących pomimo swoich rozległych możliwości.

    • Podstawowe zastosowania obejmują wysyłanie prostych wiadomości, dodawanie tematów, włączanie nagłówków i wysyłanie załączników bez ręcznej konwersji base64.

    • SWAKS jest idealnym rozwiązaniem do kontroli niezawodności i monitorowania — może być zaplanowane poprzez cron, aby regularnie wykonywało testowe wysyłki „czy nadal działa?”.

    • Może również mierzyć opóźnienia i szybkość połączenia, odmierzając czas handshake SMTP bez wysyłania pełnego e-maila.

    • SWAKS wspiera szczegółowe testowanie TLS, w tym walidację zgodności z nowoczesnymi standardami, takimi jak TLS 1.2 (wymagany przez SparkPost).

    • Podczas korzystania z SparkPost, SWAKS umożliwia łatwą iniekcję do serwerów SMTP SparkPost za pomocą klucza API do uwierzytelniania.

    • Wymuszenie wersji TLS (np. tlsv1_2) pozwala nadawcom testować swoje środowiska i zapewnić zgodność z deprecjacjami SparkPost.

    • SWAKS zapewnia szczegółowe debugowanie, co czyni go pomocnym w walidacji konfiguracji SMTP i diagnostyce nieudanych połączeń.

    • Plik konfiguracyjny .swaksrc pozwala użytkownikom przechowywać domyślne parametry, umożliwiając jednowierszowe wysyłanie dla powtarzających się testów.

    • SWAKS wspiera nadpisanie z wiersza poleceń, umożliwiając użytkownikom dynamiczne dostosowanie dowolnego pola w razie potrzeby.

Q&A Highlights

  • Co to jest SWAKS?

    Elastyczne narzędzie do testowania SMTP w wierszu poleceń, znane jako „Szwajcarski scyzoryk” dla e-maili.

  • Dlaczego używać SWAKS zamiast telnet?

    Automatyzuje handshake SMTP, wspiera uwierzytelnianie, TLS, załączniki i nagłówki, co sprawia, że testowanie jest łatwiejsze i bardziej efektywne.

  • Jakie platformy obsługuje SWAKS?

    Linux, macOS, i większość systemów podobnych do Unix, z podobną składnią w ich obrębie.

  • Jak wysłać podstawowy testowy email z SWAKS?

    Uruchamiając proste polecenie określające odbiorcę, nadawcę i adres serwera.

  • Czy SWAKS może wysyłać wiadomości z liniami tematu i niestandardowymi nagłówkami?

    Tak — obsługuje tematy, od/do nadpisy i dowolną injekcję nagłówków.

  • Czy SWAKS obsługuje wysyłanie załączników?

    Tak — i automatycznie obsługuje kodowanie base64 za Ciebie.

  • Czy SWAKS może pomóc w testowaniu zgodności TLS?

    Absolutnie — możesz wymusić użycie konkretnych wersji TLS (takich jak TLS 1.2) lub przetestować obsługę szyfrów.

  • Dlaczego TLS 1.2 jest ważny przy wysyłaniu do SparkPost?

    Starsze wersje TLS są przestarzałe; SparkPost wymaga TLS 1.2+ do bezpiecznych połączeń.

  • Jak uwierzytelnić się z SparkPost podczas korzystania z SWAKS?

    Korzystając z klucza API SparkPost jako hasła SMTP podczas komendy.

  • Czy SWAKS może mierzyć wydajność lub opóźnienia?

    Tak — przy użyciu polecenia time i częściowych cykli SMTP do mierzenia prędkości negocjacji.

  • Czy SWAKS wspiera automation?

    Tak — możesz uruchamiać go za pomocą zadań cron, aby wielokrotnie testować środowiska SMTP.

  • Czym jest plik .swaksrc i dlaczego go używać?

    To jest plik konfiguracyjny przechowujący domyślne parametry SWAKS, umożliwiający wysyłanie jednym poleceniem z opcjonalnymi nadpisaniami.

To narzędzie wiersza poleceń, które może wysyłać e-maile za pomocą SMTP. Jest nie tylko łatwe w użyciu, ale także jednocześnie oferuje wiele opcji, gdy zajdzie taka potrzeba.

W zeszłym roku opublikowaliśmy artykuł na blogu, który pokazuje jak używać wszechobecnego i bardzo użytecznego narzędzia telnet do sprawdzania połączenia SMTP.

Kolejnym krokiem jest uproszczenie ręcznego procesu przez użycie niesamowitego narzędzia „next level” (nazywa się Szwajcarskim Scyzorykiem emaili) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać e-maile za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale jednocześnie oferuje mnóstwo opcji, kiedy są potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli napotkasz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według własnych potrzeb. Na końcu tego bloga, gdy nabierzesz trochę wprawy i nie będziesz miał dużej zmienności w komendach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który wstępnie ustawia wszystkie twoje domyślne parametry. To sprawia, że uruchamianie SWAKS jest dosłownie o jedno naciśnięcie przycisku (OK, „klawisza”)! 

Na potrzeby tego ćwiczenia będziemy uruchamiać komendy z serwera CentOS 7, ale komendy są podobne na wszystkich obsługiwanych platformach. Jak wspomniano powyżej, jeśli jesteś zablokowany, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

W zeszłym roku opublikowaliśmy artykuł na blogu, który pokazuje jak używać wszechobecnego i bardzo użytecznego narzędzia telnet do sprawdzania połączenia SMTP.

Kolejnym krokiem jest uproszczenie ręcznego procesu przez użycie niesamowitego narzędzia „next level” (nazywa się Szwajcarskim Scyzorykiem emaili) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać e-maile za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale jednocześnie oferuje mnóstwo opcji, kiedy są potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli napotkasz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według własnych potrzeb. Na końcu tego bloga, gdy nabierzesz trochę wprawy i nie będziesz miał dużej zmienności w komendach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który wstępnie ustawia wszystkie twoje domyślne parametry. To sprawia, że uruchamianie SWAKS jest dosłownie o jedno naciśnięcie przycisku (OK, „klawisza”)! 

Na potrzeby tego ćwiczenia będziemy uruchamiać komendy z serwera CentOS 7, ale komendy są podobne na wszystkich obsługiwanych platformach. Jak wspomniano powyżej, jeśli jesteś zablokowany, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

W zeszłym roku opublikowaliśmy artykuł na blogu, który pokazuje jak używać wszechobecnego i bardzo użytecznego narzędzia telnet do sprawdzania połączenia SMTP.

Kolejnym krokiem jest uproszczenie ręcznego procesu przez użycie niesamowitego narzędzia „next level” (nazywa się Szwajcarskim Scyzorykiem emaili) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać e-maile za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale jednocześnie oferuje mnóstwo opcji, kiedy są potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli napotkasz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według własnych potrzeb. Na końcu tego bloga, gdy nabierzesz trochę wprawy i nie będziesz miał dużej zmienności w komendach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który wstępnie ustawia wszystkie twoje domyślne parametry. To sprawia, że uruchamianie SWAKS jest dosłownie o jedno naciśnięcie przycisku (OK, „klawisza”)! 

Na potrzeby tego ćwiczenia będziemy uruchamiać komendy z serwera CentOS 7, ale komendy są podobne na wszystkich obsługiwanych platformach. Jak wspomniano powyżej, jeśli jesteś zablokowany, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

Zainstaluj

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

Po zainstalowaniu, oto podstawowa składnia wysyłania wiadomości. W tym przykładzie używamy lokalnego adresu serwera:

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

Wyślij wiadomość z nagłówkiem w linii „Subject” + inne nagłówki, a następnie dołącz tekst “Hello World!” w treści:

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

Oto jak dodać załącznik, gdzie SWAKS dokonuje konwersji do base64, świetne do testowania limitów wielkości wiadomości:

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

Jesteś niemal gotowy z podstawami! Teraz zobaczymy, jak jeszcze możesz zoptymalizować swoje ustawienia. Oto kilka pomysłów:

  • Użyj harmonogramu takiego jak chron do podstawowych testów „czy działa”, które mogą stanowić podstawę lub nawet wzbogacić twój system monitoringu.

  • Zmierzenie opóźnienia podczas łączenia i zamykania połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry

Nie zostaniesz tu sam, pokażę ci jak zrobić to wszystko powyżej. Tym razem załadujemy to do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Po uzyskaniu klucza uwierzytelniającego, wklej go do polecenia (upewnij się, że klucz jest bezpieczny i zabezpieczony!):

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

Jeśli szukasz wskazówek, jak rozwiązywać problemy z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów SMTP. Dla podstawowego testowania połączenia SMTP, możesz też zweryfikować połączenia SMTP za pomocą sesji telnetowych.

Powtarzając najlepsze praktyki bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić czy twój system jest kompatybilny, SWAKS pozwala testować konkretne wersje TLS i szyfry.

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

W tym przykładzie używamy „tlsv1_2”, ale śmiało zamień to na „tlsv1_1” i użyj na innych domenach, aby sprawdzić ich zgodność.

Co jeśli chcesz zmierzyć czas jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i wycofać się w niektórych punktach bez wysyłania wiadomości, a czas możesz zmierzyć za pomocą polecenia “time”, które pokazuje się na końcu wyniku:

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

Jak obiecano, jeśli dotrwałeś tak daleko nagrodą jest proste śpiewanie za pomocą pliku konfiguracyjnego, aby ustawić domyślne parametry:

$ cd $HOME
$ vim .swaksrc

Skopiuj i wklej to do pliku .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

Po zapisaniu, wystarczy wpisać “swaks” i wszystko zostanie automatycznie uzupełnione i wysłane w swoją stronę! Co więcej, możesz nadpisać podając to w wierszu polecenia, na przykład jeśli chcesz innego odbiorcę:

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

Po zainstalowaniu, oto podstawowa składnia wysyłania wiadomości. W tym przykładzie używamy lokalnego adresu serwera:

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

Wyślij wiadomość z nagłówkiem w linii „Subject” + inne nagłówki, a następnie dołącz tekst “Hello World!” w treści:

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

Oto jak dodać załącznik, gdzie SWAKS dokonuje konwersji do base64, świetne do testowania limitów wielkości wiadomości:

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

Jesteś niemal gotowy z podstawami! Teraz zobaczymy, jak jeszcze możesz zoptymalizować swoje ustawienia. Oto kilka pomysłów:

  • Użyj harmonogramu takiego jak chron do podstawowych testów „czy działa”, które mogą stanowić podstawę lub nawet wzbogacić twój system monitoringu.

  • Zmierzenie opóźnienia podczas łączenia i zamykania połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry

Nie zostaniesz tu sam, pokażę ci jak zrobić to wszystko powyżej. Tym razem załadujemy to do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Po uzyskaniu klucza uwierzytelniającego, wklej go do polecenia (upewnij się, że klucz jest bezpieczny i zabezpieczony!):

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

Jeśli szukasz wskazówek, jak rozwiązywać problemy z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów SMTP. Dla podstawowego testowania połączenia SMTP, możesz też zweryfikować połączenia SMTP za pomocą sesji telnetowych.

Powtarzając najlepsze praktyki bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić czy twój system jest kompatybilny, SWAKS pozwala testować konkretne wersje TLS i szyfry.

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

W tym przykładzie używamy „tlsv1_2”, ale śmiało zamień to na „tlsv1_1” i użyj na innych domenach, aby sprawdzić ich zgodność.

Co jeśli chcesz zmierzyć czas jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i wycofać się w niektórych punktach bez wysyłania wiadomości, a czas możesz zmierzyć za pomocą polecenia “time”, które pokazuje się na końcu wyniku:

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

Jak obiecano, jeśli dotrwałeś tak daleko nagrodą jest proste śpiewanie za pomocą pliku konfiguracyjnego, aby ustawić domyślne parametry:

$ cd $HOME
$ vim .swaksrc

Skopiuj i wklej to do pliku .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

Po zapisaniu, wystarczy wpisać “swaks” i wszystko zostanie automatycznie uzupełnione i wysłane w swoją stronę! Co więcej, możesz nadpisać podając to w wierszu polecenia, na przykład jeśli chcesz innego odbiorcę:

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

Po zainstalowaniu, oto podstawowa składnia wysyłania wiadomości. W tym przykładzie używamy lokalnego adresu serwera:

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

Wyślij wiadomość z nagłówkiem w linii „Subject” + inne nagłówki, a następnie dołącz tekst “Hello World!” w treści:

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

Oto jak dodać załącznik, gdzie SWAKS dokonuje konwersji do base64, świetne do testowania limitów wielkości wiadomości:

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

Jesteś niemal gotowy z podstawami! Teraz zobaczymy, jak jeszcze możesz zoptymalizować swoje ustawienia. Oto kilka pomysłów:

  • Użyj harmonogramu takiego jak chron do podstawowych testów „czy działa”, które mogą stanowić podstawę lub nawet wzbogacić twój system monitoringu.

  • Zmierzenie opóźnienia podczas łączenia i zamykania połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry

Nie zostaniesz tu sam, pokażę ci jak zrobić to wszystko powyżej. Tym razem załadujemy to do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Po uzyskaniu klucza uwierzytelniającego, wklej go do polecenia (upewnij się, że klucz jest bezpieczny i zabezpieczony!):

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

Jeśli szukasz wskazówek, jak rozwiązywać problemy z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów SMTP. Dla podstawowego testowania połączenia SMTP, możesz też zweryfikować połączenia SMTP za pomocą sesji telnetowych.

Powtarzając najlepsze praktyki bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić czy twój system jest kompatybilny, SWAKS pozwala testować konkretne wersje TLS i szyfry.

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

W tym przykładzie używamy „tlsv1_2”, ale śmiało zamień to na „tlsv1_1” i użyj na innych domenach, aby sprawdzić ich zgodność.

Co jeśli chcesz zmierzyć czas jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i wycofać się w niektórych punktach bez wysyłania wiadomości, a czas możesz zmierzyć za pomocą polecenia “time”, które pokazuje się na końcu wyniku:

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

Jak obiecano, jeśli dotrwałeś tak daleko nagrodą jest proste śpiewanie za pomocą pliku konfiguracyjnego, aby ustawić domyślne parametry:

$ cd $HOME
$ vim .swaksrc

Skopiuj i wklej to do pliku .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

Po zapisaniu, wystarczy wpisać “swaks” i wszystko zostanie automatycznie uzupełnione i wysłane w swoją stronę! Co więcej, możesz nadpisać podając to w wierszu polecenia, na przykład jeśli chcesz innego odbiorcę:

swaks -t recipient@somewherelse.com

Inne wiadomości

Czytaj więcej z tej kategorii

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

Kompletna, natywna dla AI platforma, która rośnie wraz z Twoim biznesem.

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

Kompletna, natywna dla AI platforma, która rośnie wraz z Twoim biznesem.