Listmonk z Forward Email dla bezpiecznej dostawy newsletterów
Przegląd
Ten przewodnik dostarcza deweloperom krok po kroku instrukcje dotyczące konfiguracji Listmonk, potężnego, otwartoźródłowego menedżera newsletterów i list mailingowych, aby używać Forward Email jako dostawcy SMTP. To połączenie pozwala skutecznie zarządzać kampaniami, zapewniając jednocześnie bezpieczną, prywatną i niezawodną dostawę e-maili.
- Listmonk: Zarządza subskrybentami, organizacją list, tworzeniem kampanii i śledzeniem wyników.
- Forward Email: Działa jako bezpieczny serwer SMTP, obsługując faktyczne wysyłanie e-maili z wbudowanymi funkcjami bezpieczeństwa takimi jak SPF, DKIM, DMARC i szyfrowanie TLS.
Integrując te dwa rozwiązania, zachowujesz pełną kontrolę nad swoimi danymi i infrastrukturą, korzystając jednocześnie z solidnego systemu dostarczania Forward Email.
Dlaczego Listmonk i Forward Email
- Open Source: Zarówno Listmonk, jak i zasady stojące za Forward Email podkreślają przejrzystość i kontrolę. Hostujesz Listmonk samodzielnie, posiadając swoje dane.
- Skupienie na prywatności: Forward Email został stworzony z myślą o prywatności, minimalizując przechowywanie danych i koncentrując się na bezpiecznej transmisji.
- Ekonomiczne rozwiązanie: Listmonk jest darmowy, a Forward Email oferuje hojne darmowe plany oraz przystępne cenowo plany płatne, co czyni to rozwiązanie przyjaznym dla budżetu.
- Skalowalność: Listmonk jest bardzo wydajny, a infrastruktura Forward Email zaprojektowana jest do niezawodnej dostawy na dużą skalę.
- Przyjazne dla deweloperów: Listmonk oferuje solidne API, a Forward Email zapewnia prostą integrację SMTP i webhooki.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz:
- Wirtualny serwer prywatny (VPS) z aktualną dystrybucją Linuksa (zalecany Ubuntu 20.04+) z co najmniej 1 CPU i 1GB RAM (zalecane 2GB).
- Potrzebujesz dostawcy? Sprawdź polecaną listę VPS.
- Nazwę domeny, którą kontrolujesz (wymagany dostęp do DNS).
- Aktywne konto w Forward Email.
- Dostęp root lub
sudodo VPS. - Podstawową znajomość operacji w linii poleceń Linuksa.
Instalacja
Te kroki przeprowadzą Cię przez instalację Listmonk za pomocą Dockera i Docker Compose na Twoim VPS.
1. Aktualizacja serwera
Upewnij się, że lista pakietów systemowych i zainstalowane pakiety są aktualne.
sudo apt update && sudo apt upgrade -y
2. Instalacja zależności
Zainstaluj Docker, Docker Compose oraz UFW (Uncomplicated Firewall).
sudo apt install -y docker.io docker-compose ufw
3. Pobranie konfiguracji Listmonk
Utwórz katalog dla Listmonk i pobierz oficjalny plik docker-compose.yml.
mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml
Ten plik definiuje kontener aplikacji Listmonk oraz wymagany kontener bazy danych PostgreSQL.
4. Konfiguracja zapory sieciowej (UFW)
Zezwól na niezbędny ruch (SSH, HTTP, HTTPS) przez zaporę sieciową. Jeśli Twój SSH działa na niestandardowym porcie, dostosuj to odpowiednio.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Potwierdź włączenie zapory, gdy zostaniesz o to poproszony.
5. Konfiguracja dostępu HTTPS
Uruchomienie Listmonk przez HTTPS jest kluczowe dla bezpieczeństwa. Masz dwie główne opcje:
Opcja A: Użycie proxy Cloudflare (zalecane dla prostoty)
Jeśli DNS Twojej domeny jest zarządzany przez Cloudflare, możesz skorzystać z ich funkcji proxy, aby łatwo uzyskać HTTPS.
- Wskaż DNS: Utwórz rekord
Aw Cloudflare dla subdomeny Listmonk (np.listmonk.twojadomena.com) wskazujący na adres IP Twojego VPS. Upewnij się, że Status proxy jest ustawiony na Proxied (pomarańczowa chmura). - Zmodyfikuj Docker Compose: Edytuj plik
docker-compose.yml, który pobrałeś:Dzięki temu Listmonk będzie dostępny wewnętrznie na porcie 80, który Cloudflare może następnie proxyfikować i zabezpieczyć przez HTTPS.sed -i 's/9000:9000/80:9000/' docker-compose.yml
Opcja B: Użycie reverse proxy (Nginx, Caddy itp.)
Alternatywnie możesz skonfigurować reverse proxy, takie jak Nginx lub Caddy, na swoim VPS, aby obsługiwało zakończenie HTTPS i przekazywało żądania do Listmonk (domyślnie działającego na porcie 9000).
- Zachowaj domyślne
ports: - "127.0.0.1:9000:9000"wdocker-compose.yml, aby Listmonk był dostępny tylko lokalnie. - Skonfiguruj wybrane reverse proxy, aby nasłuchiwało na portach 80 i 443, obsługiwało pozyskiwanie certyfikatów SSL (np. przez Let's Encrypt) i przekazywało ruch do
http://127.0.0.1:9000. - Szczegółowa konfiguracja reverse proxy wykracza poza zakres tego przewodnika, ale w internecie dostępnych jest wiele tutoriali.
6. Uruchomienie Listmonk
Wróć do katalogu listmonk (jeśli jeszcze tam nie jesteś) i uruchom kontenery w trybie odłączonym.
cd ~/listmonk # Lub katalog, w którym zapisałeś docker-compose.yml
docker compose up -d
Docker pobierze niezbędne obrazy i uruchomi kontenery aplikacji Listmonk oraz bazy danych. Może to potrwać minutę lub dwie przy pierwszym uruchomieniu.
✅ Dostęp do Listmonk: Teraz powinieneś mieć dostęp do interfejsu webowego Listmonk pod skonfigurowaną domeną (np. https://listmonk.twojadomena.com).
7. Konfiguracja SMTP Forward Email w Listmonk
Następnie skonfiguruj Listmonk do wysyłania e-maili za pomocą konta Forward Email.
- Włącz SMTP w Forward Email: Upewnij się, że wygenerowałeś dane uwierzytelniające SMTP w panelu swojego konta Forward Email. Jeśli jeszcze tego nie zrobiłeś, postępuj zgodnie z przewodnikiem Forward Email dotyczącym wysyłania e-maili z własną domeną przez SMTP.
- Konfiguracja Listmonk: Zaloguj się do panelu administracyjnego Listmonk.
-
Przejdź do Ustawienia -> SMTP.
-
Listmonk ma wbudowane wsparcie dla Forward Email. Wybierz ForwardEmail z listy dostawców lub ręcznie wpisz następujące dane:
Ustawienie Wartość Host smtp.forwardemail.netPort 465Protokół uwierzytelniania LOGINNazwa użytkownika Twój nazwa użytkownika SMTP z Forward Email Hasło Twoje hasło SMTP z Forward Email TLS SSL/TLSAdres nadawcy Twój pożądany adres From(np.newsletter@twojadomena.com). Upewnij się, że ta domena jest skonfigurowana w Forward Email.
-
-
Ważne: Zawsze używaj portu
465zSSL/TLSdla bezpiecznych połączeń z Forward Email (zalecane). Port587z STARTTLS jest również obsługiwany, ale preferowany jest SSL/TLS.- Kliknij Zapisz.
- Wyślij testowy e-mail: Użyj przycisku "Wyślij testowy e-mail" na stronie ustawień SMTP. Wprowadź adres odbiorcy, do którego masz dostęp, i kliknij Wyślij. Sprawdź, czy e-mail dotarł do skrzynki odbiorczej odbiorcy.
8. Konfiguracja przetwarzania odbić
Przetwarzanie odbić pozwala Listmonk automatycznie obsługiwać e-maile, które nie mogły zostać dostarczone (np. z powodu nieprawidłowych adresów). Forward Email udostępnia webhook do powiadamiania Listmonk o odbiciach.
Konfiguracja Forward Email
- Zaloguj się do swojego Panelu Forward Email.
- Przejdź do Domains, wybierz domenę, której używasz do wysyłki, i przejdź do jej strony Settings.
- Przewiń do sekcji Bounce Webhook URL.
- Wprowadź następujący URL, zastępując
<your_listmonk_domain>faktyczną domeną lub subdomeną, pod którą dostępna jest Twoja instancja Listmonk:
Przykład:https://<your_listmonk_domain>/webhooks/service/forwardemailhttps://listmonk.yourdomain.com/webhooks/service/forwardemail - Przewiń dalej do sekcji Webhook Signature Payload Verification Key.
- Skopiuj wygenerowany klucz weryfikacyjny. Będziesz go potrzebować w Listmonk.
- Zapisz zmiany w ustawieniach domeny Forward Email.
Konfiguracja Listmonk
- W panelu administracyjnym Listmonk przejdź do Settings -> Bounces.
- Włącz Enable bounce processing.
- Włącz Enable bounce webhooks.
- Przewiń do sekcji Webhook Providers.
- Włącz Forward Email.
- Wklej Webhook Signature Payload Verification Key, który skopiowałeś z panelu Forward Email, w pole Forward Email Key.
- Kliknij Save na dole strony.
- Przetwarzanie odbić jest teraz skonfigurowane! Gdy Forward Email wykryje odbicie dla e-maila wysłanego przez Listmonk, powiadomi Twoją instancję Listmonk za pomocą webhooka, a Listmonk odpowiednio oznaczy subskrybenta.
- Wykonaj poniższe kroki w sekcji Testowanie, aby upewnić się, że wszystko działa poprawnie.
Testowanie
Oto szybki przegląd podstawowych funkcji Listmonk:
Utwórz listę mailingową
- Przejdź do Lists w pasku bocznym.
- Kliknij New List.
- Wypełnij szczegóły (Nazwa, Typ: Publiczna/ Prywatna, Opis, Tag'i) i Zapisz.
Dodaj subskrybentów
- Przejdź do sekcji Subscribers.
- Możesz dodać subskrybentów:
- Ręcznie: Kliknij New Subscriber.
- Import: Kliknij Import Subscribers, aby przesłać plik CSV.
- API: Użyj API Listmonk do programowego dodawania.
- Przypisz subskrybentów do jednej lub więcej list podczas tworzenia lub importu.
- Dobra praktyka: Używaj procesu podwójnego potwierdzenia (double opt-in). Skonfiguruj to w Settings -> Opt-in & Subscriptions.
Utwórz i wyślij kampanię
- Przejdź do Campaigns -> New Campaign.
- Wypełnij szczegóły kampanii (Nazwa, Temat, E-mail nadawcy, Lista(y) do wysyłki).
- Wybierz typ zawartości (Rich Text/HTML, Plain Text, Raw HTML).
- Stwórz treść e-maila. Możesz używać zmiennych szablonów, takich jak
{{ .Subscriber.Email }}lub{{ .Subscriber.FirstName }}. - Zawsze najpierw wyślij testowy e-mail! Użyj opcji "Wyślij test" aby zobaczyć podgląd e-maila w swojej skrzynce.
- Gdy będziesz zadowolony, kliknij Start Campaign, aby wysłać od razu lub zaplanuj na później.
Weryfikacja
- Dostarczenie SMTP: Regularnie wysyłaj testowe e-maile przez stronę ustawień SMTP Listmonk oraz testowe kampanie, aby upewnić się, że e-maile są poprawnie dostarczane.
- Obsługa odbić: Wyślij testową kampanię na znany nieprawidłowy adres e-mail (np.
bounce-test@yourdomain.com, jeśli nie masz prawdziwego, choć wyniki mogą się różnić). Po krótkim czasie sprawdź statystyki kampanii w Listmonk, czy odbicie zostało zarejestrowane. - Nagłówki e-maili: Użyj narzędzi takich jak Mail-Tester lub ręcznie sprawdź nagłówki e-maili, aby zweryfikować, czy SPF, DKIM i DMARC przechodzą, co wskazuje na poprawną konfigurację przez Forward Email.
- Logi Forward Email: Sprawdź logi w panelu Forward Email, jeśli podejrzewasz problemy z dostarczaniem pochodzące z serwera SMTP.
Notatki dla programistów
- Szablony: Listmonk korzysta z silnika szablonów Go. Zapoznaj się z jego dokumentacją, aby uzyskać zaawansowane możliwości personalizacji:
{{ .Subscriber.Attribs.your_custom_field }}. - API: Listmonk oferuje kompleksowe REST API do zarządzania listami, subskrybentami, kampaniami, szablonami i innymi funkcjami. Link do dokumentacji API znajdziesz w stopce swojej instancji Listmonk.
- Pola niestandardowe: Zdefiniuj niestandardowe pola subskrybenta w Ustawienia -> Pola subskrybenta, aby przechowywać dodatkowe dane.
- Webhooki: Oprócz informacji o odbiciach, Listmonk może wysyłać webhooki dla innych zdarzeń (np. subskrypcji), co umożliwia integrację z innymi systemami.
Podsumowanie
Integrując samodzielnie hostowaną moc Listmonk z bezpieczną, respektującą prywatność dostawą Forward Email, tworzysz solidną i etyczną platformę do email marketingu. Zachowujesz pełną kontrolę nad danymi swojej publiczności, jednocześnie korzystając z wysokiej dostarczalności i zautomatyzowanych funkcji bezpieczeństwa.
To rozwiązanie zapewnia skalowalną, opłacalną i przyjazną dla programistów alternatywę dla zamkniętych usług email, idealnie wpisując się w etos oprogramowania open-source i prywatności użytkowników.
Szczęśliwego wysyłania! 🚀