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.
npm uninstall @emailjs/browsernpm install @frontmail/emailjs-compatimport 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');Čo je kompatibilné
Section titled “Čo je kompatibilné”init(publicKey)ainit({ publicKey, blockHeadless, blockList, limitRate, storageProvider }), s voliteľným druhým argumentom pre origin API (predvolenehttps://api.frontmail.dev).send(serviceID, templateID, templateParams?, options?)asendForm(serviceID, templateID, form, options?), kdeoptionsje reťazec s verejným kľúčom alebo objekt s voľbami.- Výsledná hodnota je
EmailJSResponseStatussostatus(200) atext('OK'), rovnako ako v EmailJS, a navyše s údajmi Frontmailu:messageId,deliveryStatus('queued'alebo'held') astatusToken. - Chyby sa vyhadzujú ako objekty
EmailJSResponseStatussostatusatext, takže existujúcecatchhandlery fungujú. PôvodnúFrontmailError(scodeadocsUrl) nájdete verror.error. - Na
api.frontmail.devexistujú REST cesty/api/v1.0/email/senda/api/v1.0/email/send-forms poľami tela z EmailJS:service_id,template_id,user_id,template_params,accessToken.
Čo je inak
Section titled “Čo je inak”- 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: 200sdeliveryStatus: 'held';@frontmail/browservracia priamostatus: '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 (localev tele požiadavky sa ignoruje, pole formulárafm_localeje bežný parameter šablóny). Ak chcete zvoliť jazyk, použite@frontmail/browsers voľboulocale. accessToken(súkromný kľúč) sa v prehliadači odmietne:send/sendFormskončia sostatus: 400aerror.code === 'private_key_in_browser'. Z kódu pre frontend ho odstráňte – pozrite sprievodcu migráciou. Kód na serveri (Node.js, bezdocument) ho odovzdávať môže.sendFormpreskočí polia s heslom, anti-CSRF polia bežných frameworkov a rezervované názvy akoaccessToken(pozrite sendForm).blockHeadless,blockListalimitRatebež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.