Wprowadzenie
AI-Mailer to aplikacja do wysyłki newsletterów i kampanii e-mail do własnej bazy kontaktów — ogłoszeń, biuletynów, zaproszeń czy komunikatów do klientów lub członków organizacji. Instalujesz ją na własnym hostingu PHP + MySQL, więc dane odbiorców i reputacja dostarczalności pozostają w całości pod Twoją kontrolą, bez żadnej powtarzającej się opłaty za kontakt czy wysyłkę.
Aplikacja pozwala:
- wysyłać e-maile przez własny serwer SMTP (Gmail, Outlook, SendGrid, Mailgun, Amazon SES lub inny już używany dostawca),
- projektować wiadomości w prostym edytorze tekstu, edytorze WYSIWYG, edytorze kodu z podglądem na żywo albo wizualnym kreatorze „przeciągnij i upuść”,
- dzielić odbiorców na grupy za pomocą tagów zamiast sztywnych list mailingowych,
- zbierać nowych odbiorców przez osadzalny formularz zapisu, z opcjonalnym podwójnym potwierdzeniem (double opt-in),
- wysyłać kampanię od razu, zaplanować ją na później albo puszczać w tle — nawet po zamknięciu karty przeglądarki,
- śledzić, kto otworzył wiadomość i kliknie w link,
- prowadzić listę wykluczeń (adresy i domeny, które nigdy nie dostaną kampanii) oraz obsługiwać wypisywanie się zgodnie z RODO.
Pierwsze kroki
Wymagania
Przed instalacją upewnij się, że hosting ma PHP 8.1 lub nowszy (zalecane 8.2), MySQL 5.7+ (lub równoważną wersję MariaDB), rozszerzenie PHP sodium (używane do offline'owej weryfikacji licencji) oraz dostęp wychodzący SMTP na porcie wymaganym przez dostawcę poczty (najczęściej 587).
Instalator
Wgraj folder aplikacji na hosting i otwórz w przeglądarce install/index.php. Kreator prowadzi przez cztery kroki:
- 1Sprawdzenie wymagań — potwierdza wersję PHP, wymagane rozszerzenia (w tym
sodium) oraz zapisywalność folderów aplikacji tam, gdzie to potrzebne. - 2Połączenie z bazą danych i prefiks tabel — podajesz host MySQL, nazwę bazy, użytkownika, hasło oraz prefiks tabel (domyślnie
aim_). Instalator tworzy wszystkie tabele z dołączonych migracji. - 3Konto administratora — tworzysz pierwsze konto Super Admina: imię i nazwisko, e-mail i hasło.
- 4Zakończenie — instalator zapisuje
config.phpi pokazuje link do strony logowania. Usuń folderinstall/(albo ogranicz do niego dostęp) po potwierdzeniu, że instalacja działa.
Pierwsze logowanie i licencja
Zaloguj się kontem administratora utworzonym podczas instalacji. Aplikacja działa na poziomie Free, dopóki nie wpiszesz klucza licencji — przejdź do Ustawienia → Licencja (tylko Admin), wklej klucz i zapisz. Klucz jest weryfikowany całkowicie offline, względem domeny, na której aplikacja aktualnie działa, i jego daty wygaśnięcia; żadne dane o Twojej instalacji czy kluczu nigdy nie są nigdzie wysyłane w celu tej weryfikacji. Brakujący, nieprawidłowy albo wygasły klucz nigdy nie blokuje aplikacji — po cichu wraca do poziomu Free. Zobacz Poziomy licencji, żeby sprawdzić, co odblokowuje każdy poziom.
Przewodnik użytkownika
Nadawcy i serwery SMTP
SMTP to protokół, którym jeden serwer pocztowy przekazuje e-mail drugiemu — to realny mechanizm stojący za każdą wysłaną wiadomością. Kliknięcie „wyślij kampanię” nie wysyła e-maila samodzielnie: aplikacja łączy się z serwerem SMTP, który skonfigurowałeś (host, port, szyfrowanie, login i hasło), i to ten serwer faktycznie przekazuje wiadomość dalej.
W zakładce Nadawcy definiujesz nazwę i adres „Od” pokazywany odbiorcom; w Serwery SMTP — faktyczne dane połączenia używane do wysyłki. Kampania nie jest ograniczona do jednego serwera — możesz wybrać kilka aktywnych serwerów, a mechanizm wysyłki rotuje między nimi, przechodząc przez kolejkę odbiorców. Ma to znaczenie, bo każdy dostawca ma własne limity (np. Gmail ogranicza liczbę e-maili dziennie na konto):
- Limit na godzinę i limit na dzień — 0 oznacza brak limitu. Gdy serwer osiągnie swój limit, mechanizm pomija go do końca danego okresu i kontynuuje przez inny serwer z rotacji — odbiorcy nie są oznaczani jako „błąd”, tylko wstrzymani do zwolnienia limitu.
- Przerwa między wysyłkami — pauza w sekundach między wiadomościami wysyłanymi przez dany serwer, przydatna dla dostawców ograniczających tempo, nie tylko dzienną liczbę.
- Kolejność — decyduje, który serwer rotacja próbuje pierwszy wśród wybranych w kampanii; niższe liczby idą pierwsze.
Szablony
Buduj wielokrotnego użytku szablony wiadomości w edytorze kodu (CodeMirror) z podglądem na żywo obok edytowanego HTML/CSS, albo zacznij od jednego z gotowych szablonów i dostosuj go. Większość klientów pocztowych usuwa bloki <style> i całkowicie ignoruje JavaScript, dlatego stylowanie stosowane jest w stylach wbudowanych (inline) — to też czyni renderowanie w Outlooku i innych wymagających klientach przewidywalnym.
Import odbiorców
Odbiorców można dodawać na kilka sposobów, a wszystkie używają tego samego modelu tagów i pól dodatkowych:
- Import CSV/XLSX — Odbiorcy → Importuj automatycznie rozpoznaje nagłówki kolumn po angielsku i po polsku (
email/e-mail,first_name/imię,status,tagsoraz kolumny pól dodatkowych). Tylko brakujący lub nieprawidłowy e-mail jest twardym błędem wiersza — każdy inny problem jest obsługiwany łagodnie, żeby jeden błędny wiersz nie blokował całego pliku. Po imporcie dostajesz podsumowanie, ile wierszy dodano, zaktualizowano albo pominięto. - Szybki import — wklej listę adresów bezpośrednio, bez przygotowywania pliku.
- Import Bridge — pobiera odbiorców bezpośrednio z istniejącej, zewnętrznej tabeli MySQL, na przykład tabeli subskrybentów prowadzonej już przez stronę WordPress albo Joomla, albo jakikolwiek inny system z własną bazą MySQL. To ogólne połączenie z bazą danych, nie wtyczka zbudowana pod konkretną platformę: nadajesz nazwę połączeniu, podajesz host/port/bazę/tabelę/dane logowania (hasło jest szyfrowane przed zapisem), testujesz połączenie, mapujesz kolumnę e-mail i nazwę, wybierasz tryb duplikatów i tagi do przypisania, a następnie uruchamiasz most. Każdy odbiorca wprowadzony w ten sposób jest oznaczony informacją, który most go wprowadził, tak samo jak import czy formularz zapisu zapisują swoje własne źródło.
- Tagi — segmentacja działa przez tagi zamiast sztywnych list mailingowych, więc jeden odbiorca może należeć do dowolnej liczby grup.
Tworzenie i wysyłka kampanii
Kampania wybiera szablon, jeden lub więcej nadawców/serwerów SMTP oraz grupę odbiorców według tagu. Cztery różne wyzwalacze napędzają pod maskami dokładnie ten sam mechanizm wysyłki — wybierz ten, który pasuje do Twojego sposobu pracy, albo łącz je między różnymi kampaniami:
| Tryb | Jak działa |
|---|---|
| Wyślij teraz | Wysyłka napędzana AJAX-em, wymaga otwartej karty przeglądarki; pokazuje postęp na żywo, ale zatrzymuje się, jeśli odejdziesz albo zamkniesz kartę. |
| Zaplanowana | Wybierasz przyszłą datę/godzinę podczas tworzenia kampanii; startuje automatycznie, gdy po tym czasie odpali się wyzwalacz cron/webcron/CLI. |
| W tle | Przetrwa całkowite zamknięcie przeglądarki. Ta opcja pojawia się tylko, jeśli autotest wysyłki w tle w Diagnostyce systemu potwierdził, że dany hosting to faktycznie wspiera — nie każdy hosting pozwala PHP działać dalej po zamknięciu odpowiedzi HTTP. |
| Cron / webcron / CLI | Adres URL wklejany w funkcję zaplanowanych zadań hostingu, albo równoważne wywołanie z linii komend. Regularne wywoływanie go jest tym, co faktycznie napędza zaplanowaną i zakolejkowaną wysyłkę — można je wywoływać tak często, jak pozwala hosting; jest bezpieczne nawet, gdy nic nie czeka. |
Wszystkie cztery finalnie wywołują ten sam mechanizm przetwarzania wsadowego, więc zakolejkowana kampania może być podjęta i kontynuowana przez każdy z nich — wystartowanie wysyłki przez „Wyślij teraz” i zamknięcie karty nie gubi postępu, jeśli skonfigurowany jest też wyzwalacz cron.
Formularze zapisu i podwójna zgoda
Subscribe Widget pozwala zaprojektować osadzalny publiczny formularz zapisu, hostowany w całości na własnej stronie www — aplikacja generuje zwykły, samodzielny <form> ze stylami inline (nie loader <script>), więc działa nawet w kreatorach stron, które usuwają tagi script z wklejanych bloków HTML, i nie ma problemów z CORS, bo przeglądarka wysyła formularz bezpośrednio. Każdy widget ma własną nazwę, opcjonalne pola imienia/nazwiska z własnymi placeholderami, etykietę i kolor przycisku oraz jeden lub więcej tagów przypisywanych automatycznie każdemu, kto się przez niego zapisze. Ekran edycji pokazuje podgląd na żywo i gotowy do skopiowania fragment do osadzenia, wygenerowany od razu przy tworzeniu widgetu:
<form method="post" action="https://twoja-domena.pl/index.php?component=subscribe&action=submit" style="max-width:360px;font-family:sans-serif;">
<input type="hidden" name="widget" value="twoj-klucz-publiczny-widgetu">
<div style="position:absolute;left:-9999px;" aria-hidden="true">
<label>Nie wypełniaj tego pola<input type="text" name="website" tabindex="-1" autocomplete="off"></label>
</div>
<input type="email" name="email" placeholder="Twój adres e-mail" required style="width:100%;padding:10px;margin-bottom:8px;border:1px solid #ccc;border-radius:4px;">
<button type="submit" style="background:#0054a6;color:#fff;border:0;padding:10px 20px;border-radius:4px;cursor:pointer;">Zapisz się</button>
</form>
Ukryte pole website to honeypot — niewidoczne dla prawdziwych odwiedzających, ale atrakcyjne dla prostych botów — a każde zgłoszenie jest dodatkowo sprawdzane względem listy wykluczeń i blokowanych IP, zanim zostanie przyjęte.
Włączenie podwójnej zgody (double opt-in) oznacza, że nowe zgłoszenie nie jest dodawane do listy odbiorców od razu — wysyłany jest e-mail potwierdzający, a adres staje się prawdziwym, oznaczonym tagami odbiorcą dopiero po kliknięciu tego linku. Wymaga to aktywnego serwera SMTP, więc checkbox jest zablokowany (z wyjaśnieniem), jeśli żaden serwer nie jest jeszcze skonfigurowany.
Odczytywanie statystyk
Śledzenie otwarć i kliknięć działa przez przepisanie treści e-maila w momencie wysyłki — niewidoczny piksel śledzący 1×1 dla otwarć i zamiana każdego linku na adres przekierowujący dla kliknięć, oba kontrolowane checkboxami śledzenia na formularzu kampanii. Piksel odpala się tylko, jeśli klient pocztowy odbiorcy faktycznie wczytuje zdalne obrazy, więc prawdziwy wskaźnik otwarć jest zawsze trochę wyższy niż zmierzony — to fundamentalne ograniczenie śledzenia opartego na pikselu, powszechne w całej branży, nie coś specyficznego dla tej aplikacji. Śledzenie kliknięć jest bardziej wiarygodne, bo odpala się tylko, gdy odbiorca celowo kliknie.
Szczegóły otwarć/kliknięć per odbiorca są widoczne na stronie szczegółów samej kampanii, a zagregowane wskaźniki — wysyłki dziennie, wg tagu, wg kampanii, mapa geograficzna, rozbicie po urządzeniach/przeglądarkach — pojawiają się w panelu Statystyki.
Lista wykluczeń i blokowane IP
Czarna lista ma dwie niezależne zakładki, które łatwo pomylić:
- Lista wykluczeń — adresy e-mail i domeny, które nigdy nie mają otrzymać kampanii, niezależnie od tagów. Dodaj konkretny adres albo całą domenę za pomocą wzorca z gwiazdką (np.
*@example.com). Jest to sprawdzane zarówno przy starcie kampanii, jak i ponownie w momencie faktycznej wysyłki każdej wiadomości, więc dodanie adresu tutaj zatrzymuje przyszłe wysyłki nawet do już zakolejkowanej kampanii. - Blokowane IP — całkowicie osobna lista adresów IP (albo wzorców), którym blokuje się zgłaszanie przez publiczny formularz zapisu. To ochrona przed nadużyciami widgetu, niezwiązana z tym, kto może otrzymać kampanię.
Obie zakładki wspierają masowe dodawanie wielu wpisów naraz przez pole tekstowe, i obie używają prostego dopasowania z gwiazdką (*), nie wyrażeń regularnych.
DKIM/SPF/DMARC i obsługa odbić
SPF, DKIM i DMARC to trzy niezależne, uzupełniające się mechanizmy, które mówią odbierającemu serwerowi pocztowemu, że wiadomość naprawdę pochodzi od Ciebie, a nie od kogoś, kto podszywa się pod Twoją domenę. Razem odpowiadają za dużą część tego, czy wiadomość trafia do skrzynki, czy do spamu.
| Mechanizm | Co to jest |
|---|---|
| SPF | Wpis DNS mówiący, które serwery mają prawo wysyłać e-maile w imieniu Twojej domeny. Dodajesz go w panelu DNS domeny; zakładka „DKIM i SPF” przy serwerze SMTP sprawdzi, czy taki wpis już istnieje. |
| DKIM | Cyfrowy podpis dodawany do każdej wysłanej wiadomości, potwierdzający, że treść nie została zmieniona po drodze. AI-Mailer może wygenerować klucz DKIM i pokazać dokładny wpis DNS do wklejenia. |
| DMARC | Mówi, co ma się stać z wiadomością, która nie przejdzie weryfikacji SPF/DKIM (odrzuć albo wyślij do spamu), i pozwala dostać raporty o próbach podszywania się pod domenę. To też wpis DNS, ustawiany poza aplikacją. |
SPF i DKIM warto skonfigurować dla każdej domeny, z której wysyłasz kampanie — bez nich część odbiorców (szczególnie Gmail i Outlook) coraz częściej kieruje wiadomości prosto do spamu. DMARC jest krokiem dodatkowym, przydatnym, gdy SPF i DKIM już działają.
Odbicie (bounce) to informacja o odrzuceniu wysyłana z powrotem przez serwer odbierający — adres nie istnieje, skrzynka jest pełna itd. Żeby to wykryć, aplikacja musi sprawdzać prawdziwą skrzynkę, na którą trafiają zwroty — dlatego obsługa odbić wymaga własnych danych logowania, innych niż te do wysyłki. Na zakładce Odbicia przy serwerze SMTP: włącz sprawdzanie, wpisz host/port/protokół (IMAP albo POP3) i folder tej skrzynki, podaj login i hasło (zupełnie inne konto niż login SMTP, zwykle coś jak bounce@twojadomena.pl) oraz ustaw częstotliwość sprawdzania. Wykryte trwałe odbicie ustawia status odbiorcy na „odbity” globalnie, we wszystkich tagach, więc kolejne kampanie automatycznie go pomijają.
Funkcje
Przeglądowe zestawienie reszty aplikacji, poza głównym procesem wysyłki.
Role i uprawnienia
Cztery poziomy dostępu — Super Admin, Admin, Editor, Viewer — każdy wyższy widzi wszystko, co niższe, plus więcej. Administratorzy mogą tworzyć dodatkowe role niestandardowe z własnym zestawem uprawnień na ekranie Ról.
Log aktywności (audit log)
Zapis kto, co i kiedy zrobił w obszarach administracyjnych aplikacji, widoczny dla Adminów i Super Adminów.
Biblioteka mediów
Wspólna biblioteka obrazów używanych w szablonach i treści kampanii, osobno od Załączników — plików dołączanych i wysyłanych razem z konkretnymi wiadomościami kampanii.
Baza wiedzy
Wbudowany w aplikację system pomocy świadomy ról, z kategoriami, artykułami i FAQ — ta sama treść, na której opiera się ta dokumentacja, dostępna też wewnątrz aplikacji.
Diagnostyka systemu
Strona System Info raportuje wersje PHP/MySQL, wymagane rozszerzenia, zapisywalne foldery i autotest wysyłki w tle, przydatne przy diagnozowaniu konkretnego środowiska hostingowego.
Słowniki
Zdefiniowane przez administratora listy wyboru (własne opcje w rozwijanych polach), wspólne dla formularzy, gdzie stały zestaw opcji jest wygodniejszy niż wolny tekst.
Zmienne szablonu
Własne, systemowe i kampanijne tagi personalizacyjne — np. imię odbiorcy, link do wypisania się czy własne pole dodatkowe zdefiniowane przez administratora.
Wielojęzyczny interfejs
Interfejs dostępny jest po angielsku i po polsku; każdy użytkownik może wybrać własny język interfejsu niezależnie od domyślnego języka całej instalacji ustawionego w Ustawieniach.
Informacje
Poziomy licencji
AI-Mailer działa na trzech poziomach licencji — Free, Basic i Full. Każdy poziom pozwala wysyłać prawdziwe kampanie do prawdziwych odbiorców przez własne serwery SMTP; płatne poziomy dodają do tego zestaw dodatków związanych z dostarczalnością, raportowaniem i automatyzacją. Klucz licencji jest sprawdzany całkowicie offline — żadne dane o instalacji czy kluczu nigdzie nie są wysyłane.
Dostępne na każdym poziomie
Nieograniczona liczba kampanii, odbiorców, tagów i szablonów; wysyłka SMTP przez własny serwer (serwery); wizualny kreator szablonów i edytor kodu; widgety zapisu, łącznie z mailami potwierdzającymi double opt-in; oraz postęp wysyłki per kampania, śledzenie otwarć/kliknięć i raportowanie „Wysyłki dziennie” / „Wg tagu” / „Wg kampanii” na stronie Statystyk.
Co dodają Basic i Full
| Funkcja | Free | Basic | Full |
|---|---|---|---|
| Rotacja serwerów SMTP i automatyczny fallback | Tylko pierwszy serwer | Pełna rotacja | Pełna rotacja |
| Weryfikacja DNS DKIM/SPF/DMARC | ✗ | ✓ | ✓ |
| Sprawdzanie spam-score (szablony i kampanie) | ✗ | ✓ | ✓ |
| Mapa geo i rozbicie po urządzeniach/przeglądarkach | ✗ | ✓ | ✓ |
| Strona statystyk per odbiorca | ✗ | ✓ | ✓ |
| Mail autorespondera z widgetu zapisu | ✗ | ✓ | ✓ |
| Stopka „Powered by AI-Mailer” w wysyłanych mailach | Zawsze włączona | Opcjonalna | Opcjonalna |
| Liczba domen na jednym kluczu licencji | — (klucz niepotrzebny) | 1 domena | Do 25 domen |
Basic i Full odblokowują dokładnie ten sam zestaw funkcji opisany powyżej — w samej aplikacji nie ma między nimi różnicy funkcjonalnej. Różnica jest wyłącznie w liczbie odrębnych domen objętych jednym kluczem: klucz Basic jest związany z jedną domeną, a klucz Full obejmuje do 25 domen. Wybierz ten, który odpowiada liczbie stron, na których planujesz uruchomić AI-Mailer.
Zakup lub aktualizację licencji znajdziesz na shop.creativai.ai.
Wymagania systemowe
- PHP 8.1 lub nowszy (zalecane 8.2)
- MySQL 5.7+ lub równoważna wersja MariaDB
- Rozszerzenie PHP
sodium(offline'owa weryfikacja licencji Ed25519) - Dostęp wychodzący SMTP z hostingu na porcie wymaganym przez dostawcę
- Dostęp IMAP lub POP3 do skrzynki na odbicia, jeśli potrzebna jest automatyczna obsługa odbić
Struktura folderów dla self-hostingu
AI-Mailer jest dostarczany jako pojedynczy folder, który wgrywasz do dowolnego podfolderu hostingu — nie ma niczego do przenoszenia poza webroot. Ochrona wrażliwych plików (config.php, migracje, logi) jest realizowana przez reguły .htaccess dołączone obok nich, a nie przez poleganie na specjalnym układzie serwera.
docs/assets/ tej dokumentacji).Pomoc i wsparcie
Poprawki bezpieczeństwa są dostarczane bezpłatnie dla bieżącej linii wersji głównej przez co najmniej 1 rok od daty jej wydania, dla każdego poziomu licencji — poprawki bezpieczeństwa nigdy nie są płatną aktualizacją, tylko nowe funkcje są zależne od poziomu licencji.
Podejrzewane luki bezpieczeństwa należy zgłaszać prywatnie na adres contact@creativai.ai, a nie w publicznym zgłoszeniu czy na forum; potwierdzenie w ciągu 5 dni roboczych, i prosimy o rozsądny czas przed jakimkolwiek publicznym ujawnieniem.
AI-Mailer wykonuje dokładnie jedno ujawnione połączenie sieciowe wychodzące poza wysyłkę SMTP, którą konfigurujesz samodzielnie: offline'ową w pierwszej kolejności kontrolę licencji, najwyżej raz na 14 dni, która pyta shop.creativai.ai, czy skonfigurowany klucz został unieważniony. Każdy przypadek niepowodzenia (brak internetu, limit czasu, nieprawidłowa odpowiedź) jest traktowany identycznie — sprawdzenie jest po cichu pomijane i ponawiane później, a aplikacja działa dalej dokładnie tak, jak już określiła lokalnie. Potwierdzona odpowiedź „unieważniony” pokazuje tylko baner widoczny dla administratora; nic nigdy nie jest automatycznie obniżane ani blokowane.
Chcesz przejść z Basic na Full albo kupić licencję? Odwiedź shop.creativai.ai.
Kontakt
Pytania dotyczące AI-Mailer, licencji albo tej dokumentacji:
Strona produktu i licencje: shop.creativai.ai