Preskočiť na obsah

Kompatibilita s EmailJS (@frontmail/emailjs-compat)

@frontmail/emailjs-compat ponúka rovnaké funkcie a signatúry ako @emailjs/browser, len komunikuje s Frontmailom. Existujúci kód funguje ďalej, stačí zmeniť import a ID.

Terminal window
npm uninstall @emailjs/browser
npm install @frontmail/emailjs-compat
import emailjs from '@emailjs/browser';
import emailjs from '@frontmail/emailjs-compat';
emailjs.init({ publicKey: 'pk_4f2a…' });
emailjs.send('svc_01J9…', 'tpl_01J9…', { name: 'Jana' });
emailjs.sendForm('svc_01J9…', 'tpl_01J9…', '#contact-form');
  • init(publicKey) a init({ publicKey, blockHeadless, blockList, limitRate, storageProvider }), s voliteľným druhým argumentom pre origin API (predvolene https://api.frontmail.dev).
  • send(serviceID, templateID, templateParams?, options?) a sendForm(serviceID, templateID, form, options?), kde options je reťazec s verejným kľúčom alebo objekt s voľbami.
  • Výsledná hodnota je EmailJSResponseStatus so status (200) a text ('OK'), rovnako ako v EmailJS, a navyše s údajmi Frontmailu: messageId, deliveryStatus ('queued' alebo 'held') a statusToken.
  • Chyby sa vyhadzujú ako objekty EmailJSResponseStatus so status a text, takže existujúce catch handlery fungujú. Pôvodnú FrontmailError (s code a docsUrl) nájdete v error.error.
  • Na api.frontmail.dev existujú REST cesty /api/v1.0/email/send a /api/v1.0/email/send-form s poľami tela z EmailJS: service_id, template_id, user_id, template_params, accessToken.
  • ID a kľúče sú frontmailovské: svc_…, tpl_…, pk_…, sk_….
  • Šablóny používajú syntax Frontmailu (Handlebars) a typované parametre. Väčšina šablón s {{variable}} funguje bez zmeny; pozrite sprievodcu migráciou.
  • Keď vám dôjdu kredity, Frontmail môže odpovedať pozdržanou správou (stále ide o úspech). Kompatibilná vrstva ju hlási ako status: 200 s deliveryStatus: 'held'; @frontmail/browser vracia priamo status: 'held'.
  • Frontmail automaticky opakuje sieťové chyby a 5xx s idempotency key.
  • Preklady šablón nie sú podporované – EmailJS nič také nepozná. Kompatibilný balík aj cesty /api/v1.0/email/… vždy posielajú predvolený jazyk šablóny (locale v tele požiadavky sa ignoruje, pole formulára fm_locale je bežný parameter šablóny). Ak chcete zvoliť jazyk, použite @frontmail/browser s voľbou locale.
  • accessToken (súkromný kľúč) sa v prehliadači odmietne: send / sendForm skončia so status: 400 a error.code === 'private_key_in_browser'. Z kódu pre frontend ho odstráňte – pozrite sprievodcu migráciou. Kód na serveri (Node.js, bez document) ho odovzdávať môže.
  • sendForm preskočí polia s heslom, anti-CSRF polia bežných frameworkov a rezervované názvy ako accessToken (pozrite sendForm).
  • blockHeadless, blockList a limitRate bežia v prehliadači a slúžia na pohodlie, nie ako zabezpečenie – limity nastavte v sekcii Zabezpečenie v dashboarde.

Keď budete pripravení, prechod na @frontmail/browser alebo SDK pre framework je jednoduchý a získate typované výsledky, typované parametre a getStatus.