Migracja z EmailJS
Frontmail jest zaprojektowany tak, żeby przejście z EmailJS zajęło kilka minut: SDK dla przeglądarki ma te same sygnatury funkcji, REST API przyjmuje te same pola, a składnia szablonów jest zgodna w przypadku prostych szablonów.
Krok po kroku
Dział zatytułowany „Krok po kroku”1. Utwórz organizację i podłącz usługę
Dział zatytułowany „1. Utwórz organizację i podłącz usługę”Załóż konto na app.frontmail.dev i podłącz tego samego dostawcę poczty, którego używasz w EmailJS (zobacz Usługi). Jeśli używałeś usługi Gmail albo Outlook, połącz ją ponownie przez OAuth; w przypadku SMTP albo dostawców z API wpisz te same dane dostępowe.
2. Odtwórz szablony
Dział zatytułowany „2. Odtwórz szablony”Dla każdego szablonu z EmailJS utwórz szablon we Frontmailu. Skopiuj temat, To, From, Reply-To i treść. Potem kliknij Wykryj z szablonu i ustaw typy i wymagalność – różnice opisuje sekcja Składnia szablonów poniżej.
3. Przypisz klucze i identyfikatory
Dział zatytułowany „3. Przypisz klucze i identyfikatory”| EmailJS | Frontmail | Gdzie to znaleźć |
|---|---|---|
Public Key (user_id) |
Klucz publiczny pk_… |
Bezpieczeństwo → Klucz publiczny |
Private Key (accessToken) |
Klucz prywatny sk_… – tylko na serwerze |
Bezpieczeństwo → Klucze prywatne (pokazywany raz) |
| Service ID | ID usługi svc_… |
Usługi e-mail |
| Template ID | ID szablonu tpl_… |
Szablony |
| Domain allowlist | Dozwolone domeny | Bezpieczeństwo → Dozwolone domeny |
| reCAPTCHA | Cloudflare Turnstile z własnym bezpłatnym widżetem | Klucze w Bezpieczeństwo → Ochrona przed botami (Turnstile), dla szablonu Ustawienia → Ochrona → Wymagaj CAPTCHA (Turnstile) |
4. Zmień import
Dział zatytułowany „4. Zmień import”import emailjs from '@emailjs/browser';import emailjs from '@frontmail/emailjs-compat';Wywołania emailjs.init(), emailjs.send() i emailjs.sendForm() działają dalej – zmieniają się tylko
identyfikatory i klucz. Zobacz Zgodność z EmailJS.
Używasz skryptu z CDN? Zamień <script> EmailJS na wersję compat, która udostępnia ten sam globalny
obiekt emailjs, więc twoje wywołania zostają bez zmian:
<script src="https://cdn.jsdelivr.net/npm/@frontmail/emailjs-compat@0.1.0/dist/emailjs-compat.umd.js" integrity="sha384-RH+fuNzBqTKgxDJBHRmWfOn37fs33L+Or1ujDV7wThynx9FxD9uPptLu80LpCrEc" crossorigin="anonymous"></script>Przypnij dokładną wersję i zachowaj atrybut integrity – gdzie znaleźć hash nowszych wydań, opisuje
Przypnij wersję.
Możesz też załadować natywne SDK (@frontmail/browser, przypięte tak samo) i zmienić wywołania emailjs.
na frontmail. – argumenty są te same, ale promise zwraca status: 'queued' albo 'held' zamiast 200.
Wołasz REST API bezpośrednio? Zmień host na https://api.frontmail.dev. Ścieżki
/api/v1.0/email/send i /api/v1.0/email/send-form oraz pola treści żądania zostają takie same.
5. Turnstile zamiast reCAPTCHA
Dział zatytułowany „5. Turnstile zamiast reCAPTCHA”Jeśli twoje szablony używały reCAPTCHA, usuń widżet reCAPTCHA i dodaj Turnstile. Tak jak przy reCAPTCHA
używasz kluczy z własnego konta: utwórz bezpłatny widżet Turnstile w Cloudflare, wklej jego klucze
w Bezpieczeństwo → Ochrona przed botami (Turnstile) i kliknij Włącz CAPTCHA we wszystkich
szablonach; nowe szablony będą jej wtedy domyślnie wymagać. Umieść widżet z kluczem witryny
w formularzu – zobacz Turnstile. Pole g-recaptcha-response nie jest używane.
6. Przetestuj i przełącz
Dział zatytułowany „6. Przetestuj i przełącz”Wyślij test z edytora szablonu, wdróż zmiany i obserwuj Historię. Zachowaj konto EmailJS, dopóki nie zobaczysz, że przechodzi prawdziwy ruch.
7. Opcjonalnie: przejdź na natywne SDK
Dział zatytułowany „7. Opcjonalnie: przejdź na natywne SDK”@frontmail/browser albo SDK dla frameworka daje typowane parametry, status held, getStatus()
i typowane błędy.
Składnia szablonów
Dział zatytułowany „Składnia szablonów”Frontmail używa Handlebars; EmailJS składni podobnej do Mustache. Typowe przypadki:
| EmailJS | Frontmail | Uwagi |
|---|---|---|
{{name}} |
{{name}} |
Tak samo. We Frontmailu zawsze escapowane jako HTML. |
{{{html_content}}} |
{{html_content}} z parametrem typu html |
Potrójne nawiasy we Frontmailu nie wyłączają escapowania; użyj sanityzowanego typu html. |
Sekcje w stylu {{#if}} z Mustache {{#name}}…{{/name}} |
{{#if name}}…{{/if}} |
Używaj jawnych bloków Handlebars. |
Odwrócona sekcja Mustache {{^name}}…{{/name}} |
{{#unless name}}…{{/unless}} |
|
| Listy przez sekcje | {{#each items}}…{{/each}} z parametrem list |
Do walidacji zdefiniuj itemFields. |
| – | {{formatDate}}, {{formatMoney}}, {{eq}}… |
Dodatkowe helpery. |
Wartości domyślne ustawione w polach szablonu EmailJS odpowiadają we Frontmailu wartości default
parametru.
Porównanie
Dział zatytułowany „Porównanie”Rzeczowe porównanie funkcji istotnych przy migracji, stan na wrzesień 2026. Ceny i limity obu usług zmieniają się w czasie – przed decyzją sprawdź strony samych dostawców.
| EmailJS | Frontmail | |
|---|---|---|
| Gdy wyczerpie się miesięczny limit | Żądania są odrzucane do następnego okresu albo zmiany planu na wyższy | Wiadomości są wstrzymywane i wysyłane automatycznie po dodaniu kredytów; opcjonalnie debet i automatyczne doładowanie |
| Przedpłacone pakiety kredytów z okresem ważności | Brak | Pakiety 5k / 25k / 100k ważne 3–12 miesięcy, w każdym planie |
| Rate limit REST API | 1 żądanie na sekundę | 2–50 żądań na sekundę zależnie od planu, do tego /v1/send-batch |
| Język szablonów | Zmienne z prostymi sekcjami | Handlebars z warunkami, pętlami, helperami oraz typowanymi i walidowanymi parametrami |
| CAPTCHA | reCAPTCHA v2 | Cloudflare Turnstile, włączana we wszystkich szablonach jednym kliknięciem |
| Przełączanie na zapasowego dostawcę | Brak | Usługa zapasowa dla każdego szablonu, codzienne sprawdzanie stanu |
| Śledzenie doręczeń | Brak | Delivered / bounced / complained / opened / clicked przez webhooki dostawcy |
| Ponawianie i idempotencja w SDK | Nieudokumentowane | Automatyczne ponawianie z kluczami idempotencji |
| SDK dla frameworków | SDK dla przeglądarki, SDK dla React Native | Browser, React, React Native, Vue, Svelte, Node, zgodne z EmailJS |
Jeśli zauważysz tu nieaktualną informację, napisz do nas na support@frontmail.dev, a poprawimy ją.