NetSendo
Platform Updates

NetSendo v2.3.2: Powitania i bezpieczniejsza rejestracja

NetSendo Team6 min czytania

Pierwsze wrażenie ma znaczenie. Wyobraź sobie klienta, który właśnie zamówił instancję NetSendo Cloud. Otwiera skrzynkę, a pierwszy e-mail brzmi: "We received a request to reset the password". Nie prosił o to, a wiadomość może nawet nie być w jego języku. Wygląda to na pomyłkę albo phishing i źle rozpoczyna relację z produktem, któremu klient ma powierzyć swoich odbiorców.

NetSendo v2.3.2 to naprawia. Dba też o to, by e-maile z hasłem prowadziły do Twojej instalacji, i usuwa link „Zarejestruj się”, gdy rejestracja nie jest już możliwa. To niewielkie zmiany, ale ułatwiają pierwsze kroki w każdej instalacji NetSendo, w chmurze i na własnym serwerze.

TL;DR: W v2.3.2 polecenie netsendo:bootstrap wysyła nowym administratorom Cloud e-mail powitalny w języku zamówienia zamiast e-maila o resecie hasła. Przekaźnik haseł dostaje teraz login_url Twojej instalacji (z APP_URL), więc linki „Nie pamiętasz hasła?” prowadzą do Twojego NetSendo. Strona logowania pokazuje „Zarejestruj się” tylko do czasu utworzenia pierwszego konta. Komunikat „Rejestracja jest zamknięta” jest teraz przetłumaczony na en, pl, de i es i wyjaśnia, dlaczego rejestracja jest zamknięta.

🚀 Co nowego w v2.3.2

👋

Prawdziwe powitanie

Nowy administrator Cloud dostaje e-mail powitalny, a nie prośbę o reset.

🌍

Język zamówienia

Flaga --locale wysyła e-mail w języku klienta.

🔗

Własny adres logowania

Linki do hasła są budowane z Twojego APP_URL.

🔒

Rejestracja tylko, gdy możliwa

Link rejestracji znika, gdy istnieje już administrator.

E-maile powitalne dla nowych instancji Cloud

Podczas zakładania instancji NetSendo Cloud polecenie netsendo:bootstrap tworzy administratora i prosi przekaźnik haseł o wysłanie mu linku do ustawienia hasła. Przed tym wydaniem przekaźnik nie odróżniał nowego konta od zapomnianego hasła. Każdy nowy klient dostawał standardowy e-mail o resecie, po angielsku.

Teraz polecenie bootstrap informuje przekaźnik, że to powitanie (reason: welcome), i podaje język przez --locale, czyli język zamówienia. Klient, który zamówił po polsku, dostaje powitanie po polsku.

To tak, jakby hotel zamiast mówić nowemu gościowi „Słyszeliśmy, że zgubił Pan klucz”, po prostu go powitał i wręczył mu klucz.

Linki do hasła prowadzą do Twojej instalacji

Przy każdym zapytaniu przekaźnik haseł dostaje teraz także adres logowania tej instalacji (login_url, pobierany z APP_URL), a do tego język i imię administratora. Przekaźnik buduje z tego adresu link w e-mailu. Wcześniej link mógł prowadzić do hosta samego przekaźnika, co myliło użytkowników i sprawiało, że wiadomość budziła mniejsze zaufanie.

Poniżej uproszczony szkic informacji wysyłanych z każdym zapytaniem. Dokładny format danych może się różnić.

{
  "reason": "welcome",
  "locale": "pl",
  "name": "Anna Kowalska",
  "login_url": "https://mail.example.com/login"
}

Rejestracja dostępna tylko wtedy, gdy jest możliwa

W NetSendo rejestracja tworzy administratora. Dlatego link „Nie masz konta? Zarejestruj się” pojawia się teraz tylko, zanim powstanie pierwsze konto:

  • Self-hosted: działa jak dotąd. Pierwsza osoba, która otworzy świeżą instalację, rejestruje się jako jej administrator. Potem rejestracja jest zamknięta.
  • Cloud: rejestracja jest zamknięta zaraz po instalacji, bo bootstrap utworzył już administratora.

Później administrator dodaje kolejnych użytkowników w aplikacji. Komunikat „Rejestracja jest zamknięta”, wcześniej tylko po polsku, jest teraz dostępny w językach angielskim, polskim, niemieckim i hiszpańskim. Wyjaśnia też powód: instalacja ma już administratora.

ℹ️ Uwaga: To zachowanie sprawdzają testy tests/Feature/RegistrationClosedTest.php i tests/Feature/BootstrapCommandTest.php.

💼 Korzyści i przypadki użycia

  • ✅ E-maile powitalne pasują do tego, co użytkownik faktycznie zrobił
  • ✅ Wiadomości docierają w języku klienta
  • ✅ Linki prowadzą do Twojej domeny, co buduje zaufanie i zachowuje spójny branding
  • ✅ Brak martwych linków rejestracji w działających instalacjach
☁️

Onboarding SaaS w NetSendo Cloud

Klient z Niemiec zamawia instancję Cloud. Bootstrap uruchamia się z językiem zamówienia, a klient:

  • dostaje e-mail powitalny po niemiecku zamiast angielskiej prośby o reset
  • klika link, który otwiera stronę logowania jego własnej instancji
  • nie widzi mylącej opcji rejestracji, bo jego konto już istnieje
🏢

Agencje prowadzące instalacje klientów

Jeśli prowadzisz osobne instalacje NetSendo dla klientów, każda ma własny APP_URL. E-maile z hasłem prowadzą teraz do właściwej domeny klienta, więc jego zespół nigdy nie trafia na nieznany host.

🛒

Zespoły e-commerce na własnym serwerze

Sklep internetowy instaluje NetSendo, a właściciel rejestruje się pierwszy i zostaje administratorem. Od tej chwili osoby odwiedzające stronę logowania nie widzą linku rejestracji. Jeśli ktoś otworzy stronę rejestracji bezpośrednio, przetłumaczony komunikat jasno wyjaśni, że sklep ma już administratora. Konta dla marketingu i obsługi klienta dodaje właściciel.

🛠️ Krok po kroku: aktualizacja do v2.3.2

  1. Zrób kopię zapasową

    Przed każdą aktualizacją zabezpiecz bazę danych i plik .env. Przy self-hostingu dane są Twoje, a kopie zapasowe także.

  2. Sprawdź APP_URL

    Link logowania w e-mailach z hasłem pochodzi z APP_URL. Upewnij się, że to publiczny adres HTTPS, który faktycznie odwiedzają użytkownicy.

    APP_URL=https://mail.example.com
  3. Pobierz nowe wydanie

    Jeśli używasz Dockera, pobierz zaktualizowane obrazy i zrestartuj usługi. Dostosuj polecenia do swojej konfiguracji.

    docker compose pull
    docker compose up -d
  4. Wyczyść zapisaną konfigurację

    Jeśli zmieniłeś APP_URL, wyczyść zapisaną w pamięci podręcznej konfigurację, aby nowa wartość zaczęła działać. Nazwa usługi zależy od Twojego pliku compose.

    docker compose exec app php artisan config:clear
  5. Sprawdź stronę logowania

    Otwórz /login w oknie prywatnym. W instalacji, która ma już administratora, link „Zarejestruj się” nie powinien być widoczny.

  6. Przetestuj „Nie pamiętasz hasła?”

    Poproś o reset dla testowego użytkownika i sprawdź, czy link w e-mailu prowadzi do Twojej domeny.

⚠️ Częsty błąd: Jeśli APP_URL to nadal http://localhost lub wewnętrzna nazwa hosta Dockera, e-maile z hasłem będą zawierać ten adres. Zawsze ustawiaj publiczny URL.
💡 Wskazówka: Na świeżym serwerze self-hosted zarejestruj konto administratora od razu po instalacji. Dopóki nie ma pierwszego konta, administratorem zostaje pierwsza osoba, która otworzy instalację.

🎯 Porady ekspertów

1
Szybko przejmuj nowe instalacje

Nie zostawiaj świeżej, publicznie dostępnej instalacji bez administratora. Zarejestruj się od razu albo do tego czasu ogranicz dostęp, np. firewallem lub przez VPN.

2
Używaj HTTPS w APP_URL

Linki do hasła zawierają wrażliwe tokeny. Adres HTTPS chroni je w transmisji i zapobiega ostrzeżeniom przeglądarki.

3
Dodawaj użytkowników w aplikacji

Publiczna rejestracja jest zamknięta, więc konta członków zespołu zakłada administrator. Dzięki temu kontrolujesz, kto ma dostęp do Twoich list.

4
Uruchamiaj testy we własnych buildach

Jeśli utrzymujesz fork, uruchom nowe testy, aby upewnić się, że Twoje zmiany nie psują rejestracji ani działania bootstrapu.

php artisan test --filter=RegistrationClosedTest
php artisan test --filter=BootstrapCommandTest

🏁 Podsumowanie

v2.3.2 to niewielkie wydanie, które usprawnia pierwsze kroki użytkowników:

  • Nowi administratorzy Cloud dostają e-mail powitalny w swoim języku, a nie e-mail o resecie hasła.
  • E-maile z hasłem prowadzą do Twojej instalacji, na podstawie APP_URL.
  • Strona logowania pokazuje rejestrację tylko wtedy, gdy jest możliwa, a komunikat „Rejestracja jest zamknięta” jest przetłumaczony na cztery języki i wyjaśnia powód.

Szczegóły konfiguracji znajdziesz w dokumentacji. Aby połączyć NetSendo z innymi narzędziami, przejrzyj integracje.

Gotowy na aktualizację?

Pobierz NetSendo v2.3.2 i zapewnij użytkownikom lepszy start na platformie, którą kontrolujesz.

#release#onboarding#security#localization#netsendo-cloud#self-hosted
Udostępnij