NetSendo v2.2.0: wypisanie jednym kliknięciem i agenci AI

Od 2024 roku Gmail i Yahoo wymagają od nadawców masowych obsługi wypisania jednym kliknięciem. Filtry antyspamowe obniżają też ocenę maili, które zawierają tylko HTML. Jeśli Twoja platforma pomija którąkolwiek z tych zasad, kampanie trafiają do spamu bez względu na jakość treści.
NetSendo v2.2.0 rozwiązuje oba problemy. Pozwala też agentom AI skonfigurować prawie całą platformę przez API i MCP, zapisuje odpowiedzi subskrybentów w CRM i przebudowuje silnik lejków, tak aby lejki robiły to, co pokazuje kreator. To duże wydanie, więc w tym artykule opisujemy najważniejsze zmiany i to, co musisz zrobić przy aktualizacji.
List-Unsubscribe zgodne z RFC 8058, przełączniki śledzenia dla skrzynki i dla wiadomości, wykrywanie odpowiedzi przez IMAP, 140 narzędzi MCP (wcześniej 77) oraz lejki budowane przez API z prawdziwym rozgałęzieniem testów A/B. Przechodzi na MySQL 8.4 LTS, Laravel 13, Inertia 3 i Node 24, a także naprawia wysyłkę SMS, wyzwalacze lejków, listenery uruchamiane dwukrotnie i błąd stored XSS. Przed aktualizacją zrób kopię zapasową bazy danych.🚀 Co nowego w v2.2.0
Wersja tekstowa
Każdy mail wychodzi jako multipart/alternative, więc SpamAssassin nie oznacza go już jako MIME_HTML_ONLY.
Wypisanie jednym kliknięciem
Nagłówki RFC 8058 i endpointy POST, których wymagają Gmail i Yahoo.
140 narzędzi MCP
Agenci AI mogą zarządzać szablonami, automatyzacjami, formularzami, webhookami i mailami systemowymi.
Wykrywanie odpowiedzi
Odpowiedzi subskrybentów trafiają do historii w CRM, uruchamiają automatyzacje i dodają punkty w lead scoringu.
Każdy mail ma teraz wersję tekstową
Przed tym wydaniem SendGrid, SMTP, Gmail i NMI wysyłały wyłącznie HTML. Teraz każdy mail zawiera część text/plain obok HTML. Możesz napisać własną wersję tekstową w edytorze (Wersja tekstowa) albo przez pole plain_text w API. Jeśli tego nie zrobisz, nowy helper EmailPlainText wygeneruje ją z HTML.
Generator zachowuje akapity, listy, nagłówki, teksty alternatywne obrazów i linki (zapisane jako etykieta (https://…)). Pomija ukryte preheadery, piksele śledzące i style. Działa przed przepisaniem linków na potrzeby śledzenia, więc wersja tekstowa pokazuje prawdziwe adresy docelowe.
POST /api/v1/email/send
{
"email": "jan@example.com",
"subject": "Zamówienie wysłane",
"content": "<p>Cześć [[fname]]…</p>",
"plain_text": "Cześć [[fname]], Twoje zamówienie jest w drodze.",
"tracking_enabled": false
}
Wypisanie jednym kliknięciem (RFC 8058)
Podpisane adresy wypisu przyjmują teraz POST z treścią List-Unsubscribe=One-Click, który od razu wypisuje subskrybenta. Wywołuje to zdarzenie SubscriberUnsubscribed (źródło one_click), więc Twoje automatyzacje i webhooki działają jak zwykle. Kampanie i autorespondery wysyłane do co najmniej jednej listy automatycznie dostają oba nagłówki:
List-Unsubscribe: <https://mail.example.com/unsubscribe/…podpis…>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
Nagłówek List-Unsubscribe ustawiony przez Ciebie nadal ma pierwszeństwo. Aby wyłączyć automatyczne nagłówki, ustaw EMAIL_LIST_UNSUBSCRIBE=false.
Przełączniki śledzenia dla skrzynki i wiadomości
Możesz teraz wyłączyć śledzenie kliknięć i otwarć dla całej skrzynki albo dla pojedynczej wiadomości. Gdy śledzenie jest wyłączone, linki zostają dokładnie takie, jak je napisano, piksel nie jest dodawany, a SendGrid dostaje polecenie, żeby też nie śledził tej wiadomości. Przydaje się to przy mailach transakcyjnych, gdzie prywatność i dostarczalność są ważniejsze niż statystyki.
Agenci AI mogą konfigurować NetSendo
Szablony, maile i strony systemowe, reguły automatyzacji, formularze, harmonogramy wysyłki list, tagi, pola własne i webhooki mają teraz endpointy w API. Klient MCP (@netsendo/mcp-client@1.6.0) rejestruje 140 narzędzi zamiast 77. Twoje obecne klucze API nadal działają, bo nowe endpointy korzystają z istniejących uprawnień. Usunięcie rekordu z powiązanymi danymi zwraca 409, dopóki nie wyślesz confirm=true.
Lejki, które da się zbudować i na których można polegać
Lejki można teraz w całości budować, zmieniać i uruchamiać przez API, w tym dodawać kroki na ścieżkach yes/no warunku i zapisywać subskrybentów nowym endpointem POST /funnels/{id}/subscribers. Kroki testu A/B dają teraz każdemu wariantowi własną ścieżkę, a po wyłonieniu zwycięzcy nowi subskrybenci idą jego ścieżką.
Wykrywanie odpowiedzi
Aby je włączyć, podaj dane logowania IMAP skrzynki na odpowiedzi w Ustawienia → Skrzynki → Wykrywanie odpowiedzi. NetSendo sprawdza tę skrzynkę co pięć minut. Otwiera folder tylko do odczytu, więc nic nie zostaje oznaczone jako przeczytane, przeniesione ani usunięte. Pomija też autoodpowiedzi i wiadomości o nieobecności. Każda prawdziwa odpowiedź trafia do historii kontaktu w CRM, uruchamia automatyzację CRM: Kontakt odpowiedział i stosuje regułę punktacji Email Replied (domyślnie +25 punktów).
💼 Korzyści i przypadki użycia
E-commerce: lepsza dostarczalność do skrzynki odbiorczej
Sekwencje porzuconego koszyka i maile po zakupie wychodzą teraz z wersją tekstową i nagłówkami wypisania jednym kliknięciem, czyli z tym, co Gmail sprawdza w pierwszej kolejności. Wyłącz śledzenie dla potwierdzeń zamówień, żeby wyglądały jak zwykła osobista korespondencja.
SaaS: onboarding, który reaguje na odpowiedzi
Gdy użytkownik wersji próbnej odpowie na mail onboardingowy, wykrywanie odpowiedzi może utworzyć zadanie w CRM, powiadomić zespół customer success i podnieść lead score. Test A/B w lejku wysyła potem każdy wariant jego własną ścieżką follow-upów.
Agencje: konfiguracja klienta przez agentów AI
Podłącz Claude'a lub innego asystenta zgodnego z MCP i poproś go o utworzenie listy klienta, formularza, szablonów, automatyzacji powitalnej i lejka. Każdy klucz API widzi tylko swoje konto, więc dane klientów pozostają oddzielone.
🛠️ Aktualizacja krok po kroku
- Zrób kopię zapasową bazy danych
Przejścia na MySQL 8.4 nie da się cofnąć, bo dane z 8.4 nie uruchomią się na 8.0. Najpierw zrób pełną kopię zapasową.
- Zaktualizuj usługę
dbZmień obraz i
command:jednocześnie. MySQL 8.4 nie uruchomi się ze starą flagą--default-authentication-plugin.db: image: mysql:8.4 command: --mysql-native-password=ON --authentication-policy=mysql_native_password,, - Popraw workera kolejki
docker compose pullnie zmienia Twojego obecnego plikudocker-compose.yml. Zmień polecenie kolejki ręcznie, żeby potwierdzenia wypisu i powiadomienia o nowych subskrybentach były faktycznie wysyłane:queue: command: php artisan queue:work --queue=default,notifications - Pobierz obrazy i uruchom ponownie
docker compose pull && docker compose up -dPrzy pierwszym starcie MySQL aktualizuje katalog danych, co chwilę trwa.
- Przejrzyj zmiany w działaniu
Sprawdź aktywne lejki: od teraz wyzwalacze listy, formularza i tagu zapisują do nich nowych subskrybentów. Sprawdź też ustawienia CRON poszczególnych list, ustawienia nagłówków list i maile systemowe wyłączone dla list. Wszystkie te ustawienia są teraz egzekwowane.
⚠️ Ważne: Jeśli masz własną implementacjęMailProviderInterface, przed aktualizacją dodaj do metodysend()nowe opcjonalne parametry?string $textContenti?bool $trackingEnabled.
🔧 Najważniejsze poprawki i zmiany platformy
- Wysyłka SMS działa: każde zadanie SMS kończyło się błędem, bo wywoływało nieistniejącą metodę. Webhooki
sms.sentisms.failedteż już działają. - Koniec z podwójnymi listenerami: 22 pary zdarzenie–listener były zarejestrowane dwa razy, co powodowało podwójne powiadomienia i podwójne punkty w lead scoringu. Reguły automatyzacji CRM nie uruchamiają się już dwa lub trzy razy na zdarzenie.
- Silnik lejków: warunki lejków, akcje tagów, akcja wypisania, powiadomienia, kroki SMS, kroki czekaj do, przypomnienia oraz pauza i wznawianie działają teraz poprawnie.
- Nieaktywni subskrybenci nie są już planowani jako odbiorcy ani liczeni w szacunkach odbiorców.
- Izolacja kont: automatyzacje i ustawienia panelu nie mogą już wpływać na inne konta w tej samej instancji.
- Bezpieczeństwo: czat Brain nie uruchamia już HTML z odpowiedzi (stored XSS),
/docs/apiwymaga logowania, a zaktualizowane zależności zamykają podatności, w tym krytyczną CVE-2026-44262. - Stos technologiczny: Laravel 13, Inertia 3, MySQL 8.4 LTS, Node 24 LTS, a do tego Dependabot i cotygodniowy workflow audytu zależności.
🎯 Porady ekspertów
Wygenerowana wersja tekstowa jest dobra, ale krótki tekst napisany samodzielnie często lepiej wygląda w klientach tekstowych i powiadomieniach na smartwatchu.
Skieruj wykrywanie odpowiedzi na skrzynkę Reply-To, nie na skrzynkę zwrotów, i tam, gdzie dostawca na to pozwala, użyj hasła aplikacji IMAP z dostępem tylko do odczytu.
Nadawaj kluczom MCP tylko potrzebne uprawnienia, na przykład lists:* albo funnels:*. Operacje destrukcyjne nadal wymagają confirm=true, ale ograniczone uprawnienia to Twoja pierwsza linia obrony.
Użyj curl -X POST -d 'List-Unsubscribe=One-Click' na adresie testowego subskrybenta. Odpowiedź powinna mieć kod 200, a ponowne wysłanie nie powinno niczego zmienić.
Jeśli używasz QUEUE_CONNECTION=database, przed uruchomieniem nowego workera sprawdź stare zadania w kolejce notifications, żeby subskrybenci nie dostali lawiny dawnych maili.
🎉 Podsumowanie
v2.2.0 to jedno z największych wydań NetSendo. Twoje maile spełniają teraz wymagania Gmaila i Yahoo wobec nadawców, agenci AI mogą skonfigurować platformę za Ciebie, a lejki działają tak, jak pokazuje kreator. Ponieważ NetSendo działa na Twoim serwerze, dostajesz to wszystko bez limitów wysyłki i z pełną własnością danych.
Przeczytaj dokumentację, przejrzyj integracje albo pobierz NetSendo, żeby zacząć.
Gotowy na aktualizację?
Zrób kopię zapasową bazy, zaktualizuj docker-compose.yml i uruchom v2.2.0 jeszcze dziś.




