Jak używać SWAKS z SparkPost

Ptak

24 cze 2021

Email

1 min read

Jak używać SWAKS z SparkPost

Najważniejsze informacje

    • 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 jasne flagi, obsługę uwierzytelniania, załączniki, testowanie TLS, pomiar czasu i niestandardowe nagłówki.

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

    • Podstawowe użycie obejmuje wysyłanie prostych wiadomości, dodawanie linii tematycznych, uwzględnianie nagłówków i wysyłanie załączników bez ręcznej konwersji base64.

    • SWAKS jest idealny do sprawdzania niezawodności i monitorowania — może być zaplanowany za pomocą cron do przeprowadzania regularnych testów „czy to wciąż działa?”.

    • Może również mierzyć opóźnienia i prędkość połączenia, mierząc czas trwania negocjacji SMTP bez wysyłania pełnego e-maila.

    • SWAKS obsługuje szczegółowe testowanie TLS, w tym weryfikację zgodności z nowoczesnymi standardami, takimi jak TLS 1.2 (wymagane przez SparkPost).

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

    • Wymuszanie 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 weryfikacji konfiguracji SMTP i diagnozowaniu nieudanych połączeń.

    • Plik konfiguracyjny .swaksrc umożliwia użytkownikom przechowywanie domyślnych parametrów, co pozwala na wysyłanie jednym poleceniem w przypadku powtarzających się testów.

    • SWAKS obsługuje nadpisywanie wiersza poleceń, umożliwiając użytkownikom dynamiczne dostosowywanie dowolnego pola, gdy zajdzie taka potrzeba.

Podsumowanie pytań i odpowiedzi

  • Czym jest SWAKS?

    Elastyczne narzędzie do testowania SMTP w wierszu poleceń znane jako „szwajcarski nóż oficera” do e-maili.

  • Dlaczego używać SWAKS zamiast telnetu?

    Automatyzuje handshaking SMTP, wspiera uwierzytelnianie, TLS, załączniki i nagłówki, co ułatwia i zwiększa możliwości testowania.

  • Jakie platformy obsługuje SWAKS?

    Linux, macOS i większość systemów podobnych do Uniksa, z podobną składnią w całej ich strukturze.

  • Jak mogę wysłać podstawowy testowy e-mail za pomocą SWAKS?

    Przez uruchomienie prostego polecenia określającego odbiorcę, nadawcę i adres serwera.

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

    Tak — obsługuje tematy, zamiany z/do i arbitralne wstrzykiwanie nagłówków.

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

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

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

    Absolutnie — możesz wymusić konkretne wersje TLS (takie jak TLS 1.2) lub przetestować wsparcie dla 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 autoryzować się w SparkPost podczas korzystania z SWAKS?

    Używając swojego klucza API SparkPost jako hasła SMTP podczas polecenia.

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

    Tak — używając polecenia time i częściowych cykli SMTP do pomiaru prędkości nawiązywania połączenia.

  • Czy SWAKS wspiera automatyzację?

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

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

    To jest plik konfiguracyjny przechowujący domyślne parametry SWAKS, umożliwiający wysyłanie za pomocą jednego polecenia z opcjonalnymi nadpisaniami.

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

Kolejnym krokiem jest uproszczenie ręcznego procesu, za pomocą niesamowitego narzędzia „na wyższym poziomie” (nazywa się samodzielnie szwajcarskim scyzorykiem e-maila) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać wiadomości e-mail za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale również jednocześnie oferuje niezliczone opcje, gdy jest to potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli masz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według swojego uznania. Na końcu tego bloga, gdy zyskasz pewną znajomość i nie będziesz miał zbyt wiele różnorodności/dynamiki w swoich poleceniach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który ustawia wszystkie twoje domyślne parametry. Pozwoli to na uruchomienie SWAKS dosłownie w odległości jednego przycisku (OK, „klawisza”)! 

Dla celów tego ćwiczenia, będziemy uruchamiać polecenia z serwera CentOS 7, ale polecenia są podobne na wszystkich obsługiwanych platformach. Jak już wspomniano, jeśli utkniesz, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

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

Kolejnym krokiem jest uproszczenie ręcznego procesu, za pomocą niesamowitego narzędzia „na wyższym poziomie” (nazywa się samodzielnie szwajcarskim scyzorykiem e-maila) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać wiadomości e-mail za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale również jednocześnie oferuje niezliczone opcje, gdy jest to potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli masz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według swojego uznania. Na końcu tego bloga, gdy zyskasz pewną znajomość i nie będziesz miał zbyt wiele różnorodności/dynamiki w swoich poleceniach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który ustawia wszystkie twoje domyślne parametry. Pozwoli to na uruchomienie SWAKS dosłownie w odległości jednego przycisku (OK, „klawisza”)! 

Dla celów tego ćwiczenia, będziemy uruchamiać polecenia z serwera CentOS 7, ale polecenia są podobne na wszystkich obsługiwanych platformach. Jak już wspomniano, jeśli utkniesz, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

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

Kolejnym krokiem jest uproszczenie ręcznego procesu, za pomocą niesamowitego narzędzia „na wyższym poziomie” (nazywa się samodzielnie szwajcarskim scyzorykiem e-maila) o nazwie SWAKS. Jest to narzędzie wiersza poleceń, które może wysyłać wiadomości e-mail za pośrednictwem SMTP. Jest nie tylko łatwe w użyciu, ale również jednocześnie oferuje niezliczone opcje, gdy jest to potrzebne.

Na początku byłem onieśmielony ilością opcji, ale jest ono całkowicie użyteczne z najprostszymi opcjami. Jeśli masz jakiekolwiek problemy, po prostu dodaj tę stronę do zakładek, skopiuj i wklej przykłady, a następnie zmodyfikuj je według swojego uznania. Na końcu tego bloga, gdy zyskasz pewną znajomość i nie będziesz miał zbyt wiele różnorodności/dynamiki w swoich poleceniach SWAKS, pokażę ci, jak utworzyć plik konfiguracyjny, który ustawia wszystkie twoje domyślne parametry. Pozwoli to na uruchomienie SWAKS dosłownie w odległości jednego przycisku (OK, „klawisza”)! 

Dla celów tego ćwiczenia, będziemy uruchamiać polecenia z serwera CentOS 7, ale polecenia są podobne na wszystkich obsługiwanych platformach. Jak już wspomniano, jeśli utkniesz, po prostu skopiuj i wklej bezpośrednio do swojego systemu i zmodyfikuj to, co potrzebujesz. Oto podstawy:

Zainstaluj SWAKS

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

Wysyłanie swojego pierwszego e-maila za pomocą SWAKS

Po zainstalowaniu, oto podstawowa składnia do 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 „Temat” + innymi nagłówkami, a następnie dołącz tekst „Hello World!” do 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 wykonuje konwersję base64 za Ciebie, świetne do testowania limitów rozmiaru wiadomości:


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

Po zainstalowaniu, oto podstawowa składnia do 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 „Temat” + innymi nagłówkami, a następnie dołącz tekst „Hello World!” do 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 wykonuje konwersję base64 za Ciebie, świetne do testowania limitów rozmiaru wiadomości:


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

Po zainstalowaniu, oto podstawowa składnia do 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 „Temat” + innymi nagłówkami, a następnie dołącz tekst „Hello World!” do 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 wykonuje konwersję base64 za Ciebie, świetne do testowania limitów rozmiaru wiadomości:


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

Zaawansowane techniki testowania SWAKS

Masz już w zasadzie wszystko, co potrzebne! Teraz zobaczmy, jak możesz podnieść swoją grę w konfiguracji. Oto kilka pomysłów:

  • Użyj harmonogramu, takiego jak chron, aby przeprowadzić podstawowe testy 'czy działa', które mogą stanowić fundament  lub nawet wzmocnić twój system monitorowania.

  • Mierz opóźnienie przy łączeniu i zamykaniu połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry.

Nie zostaniesz tutaj sam, pokażę ci, jak zrobić wszystko powyżej.

Masz już w zasadzie wszystko, co potrzebne! Teraz zobaczmy, jak możesz podnieść swoją grę w konfiguracji. Oto kilka pomysłów:

  • Użyj harmonogramu, takiego jak chron, aby przeprowadzić podstawowe testy 'czy działa', które mogą stanowić fundament  lub nawet wzmocnić twój system monitorowania.

  • Mierz opóźnienie przy łączeniu i zamykaniu połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry.

Nie zostaniesz tutaj sam, pokażę ci, jak zrobić wszystko powyżej.

Masz już w zasadzie wszystko, co potrzebne! Teraz zobaczmy, jak możesz podnieść swoją grę w konfiguracji. Oto kilka pomysłów:

  • Użyj harmonogramu, takiego jak chron, aby przeprowadzić podstawowe testy 'czy działa', które mogą stanowić fundament  lub nawet wzmocnić twój system monitorowania.

  • Mierz opóźnienie przy łączeniu i zamykaniu połączenia z serwerem pocztowym.

  • Testuj różne wersje TLS i szyfry.

Nie zostaniesz tutaj sam, pokażę ci, jak zrobić wszystko powyżej.

Używanie SWAKS z SparkPost SMTP

Tym razem zamierzamy wstrzyknąć do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Gdy otrzymasz swój klucz uwierzytelniający, wklej go do polecenia (upewnij się, że przechowujesz klucz w bezpieczny sposób!):


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 dotyczących rozwiązywania problemów z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów z SMTP. W przypadku podstawowego testowania połączeń SMTP, możesz również zweryfikować połączenia SMTP za pomocą sesji telnet.

Testowanie wersji TLS i zgodności szyfrów

W zgodzie z najlepszymi praktykami bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS, z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić, czy Twój system jest zgodny, SWAKS pozwala na testowanie konkretnych wersji TLS i szyfrów.


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 możesz to zmienić na „tlsv1_1” i używać go na innych domenach, aby obserwować ich zgodność.

Pomiar opóźnienia połączenia SMTP

Co jeśli chcesz zmierzyć jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i zrezygnować w niektórych punktach bez wysyłania wiadomości, a Ty możesz to zmierzyć używając polecenia „time”, które pokaże 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
<

Tym razem zamierzamy wstrzyknąć do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Gdy otrzymasz swój klucz uwierzytelniający, wklej go do polecenia (upewnij się, że przechowujesz klucz w bezpieczny sposób!):


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 dotyczących rozwiązywania problemów z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów z SMTP. W przypadku podstawowego testowania połączeń SMTP, możesz również zweryfikować połączenia SMTP za pomocą sesji telnet.

Testowanie wersji TLS i zgodności szyfrów

W zgodzie z najlepszymi praktykami bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS, z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić, czy Twój system jest zgodny, SWAKS pozwala na testowanie konkretnych wersji TLS i szyfrów.


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 możesz to zmienić na „tlsv1_1” i używać go na innych domenach, aby obserwować ich zgodność.

Pomiar opóźnienia połączenia SMTP

Co jeśli chcesz zmierzyć jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i zrezygnować w niektórych punktach bez wysyłania wiadomości, a Ty możesz to zmierzyć używając polecenia „time”, które pokaże 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
<

Tym razem zamierzamy wstrzyknąć do naszych serwerów SparkPost.

Wyślij wiadomość do naszych serwerów SparkPost (Jak utworzyć klucz API, oraz opcje SMTP). Gdy otrzymasz swój klucz uwierzytelniający, wklej go do polecenia (upewnij się, że przechowujesz klucz w bezpieczny sposób!):


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 dotyczących rozwiązywania problemów z wysyłaniem za pomocą SMTP do naszych serwerów, sprawdź nasz artykuł o rozwiązywaniu problemów z SMTP. W przypadku podstawowego testowania połączeń SMTP, możesz również zweryfikować połączenia SMTP za pomocą sesji telnet.

Testowanie wersji TLS i zgodności szyfrów

W zgodzie z najlepszymi praktykami bezpieczeństwa, SparkPost wycofał wszystkie starsze wersje TLS, z wyjątkiem v1.2 i nowszych. Jeśli chcesz sprawdzić, czy Twój system jest zgodny, SWAKS pozwala na testowanie konkretnych wersji TLS i szyfrów.


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 możesz to zmienić na „tlsv1_1” i używać go na innych domenach, aby obserwować ich zgodność.

Pomiar opóźnienia połączenia SMTP

Co jeśli chcesz zmierzyć jak szybko serwer pocztowy odpowiada? SWAKS może przejść przez cykl SMTP i zrezygnować w niektórych punktach bez wysyłania wiadomości, a Ty możesz to zmierzyć używając polecenia „time”, które pokaże 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
<

Automatyzacja SWAKS za pomocą pliku konfiguracyjnego

Jak obiecano, jeśli dotarłeś tak daleko, nagrodą jest prosty sposób na utworzenie pliku konfiguracyjnego do ustawienia domyślnych parametrów:


$ 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 automatycznie uzupełnia wszystko i wysyła je w swoją wesołą drogę! Co lepsze, możesz nadpisać, dodając to w linii poleceń, powiedzmy na przykład, że chcesz innego odbiorcę:


swaks -t recipient@somewherelse.com

Jak obiecano, jeśli dotarłeś tak daleko, nagrodą jest prosty sposób na utworzenie pliku konfiguracyjnego do ustawienia domyślnych parametrów:


$ 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 automatycznie uzupełnia wszystko i wysyła je w swoją wesołą drogę! Co lepsze, możesz nadpisać, dodając to w linii poleceń, powiedzmy na przykład, że chcesz innego odbiorcę:


swaks -t recipient@somewherelse.com

Jak obiecano, jeśli dotarłeś tak daleko, nagrodą jest prosty sposób na utworzenie pliku konfiguracyjnego do ustawienia domyślnych parametrów:


$ 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 automatycznie uzupełnia wszystko i wysyła je w swoją wesołą drogę! Co lepsze, możesz nadpisać, dodając to w linii poleceń, powiedzmy na przykład, że chcesz innego odbiorcę:


swaks -t recipient@somewherelse.com

Inne wiadomości

Przeczytaj więcej z tej kategorii

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

Kompletna platforma oparta na sztucznej inteligencji, która rośnie wraz z Twoim biznesem.

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

Kompletna platforma oparta na sztucznej inteligencji, która rośnie wraz z Twoim biznesem.