Kompatibilita s EmailJS (@frontmail/emailjs-compat)
@frontmail/emailjs-compat nabízí stejné funkce a signatury jako @emailjs/browser, jen komunikuje
s Frontmailem. Stávající kód funguje dál, stačí změnit 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');Co je kompatibilní
Sekce “Co je kompatibilní”init(publicKey)ainit({ publicKey, blockHeadless, blockList, limitRate, storageProvider }), s volitelným druhým argumentem pro origin API (výchozíhttps://api.frontmail.dev).send(serviceID, templateID, templateParams?, options?)asendForm(serviceID, templateID, form, options?), kdeoptionsje řetězec s public key, nebo objekt s volbami.- Výsledná hodnota je
EmailJSResponseStatussestatus(200) atext('OK'), stejně jako v EmailJS, a navíc s údaji Frontmailu:messageId,deliveryStatus('queued'nebo'held') astatusToken. - Chyby se vyhazují jako objekty
EmailJSResponseStatussestatusatext, takže stávajícícatchhandlery fungují. PůvodníFrontmailError(scodeadocsUrl) najdete verror.error. - Na
api.frontmail.devexistují REST cesty/api/v1.0/email/senda/api/v1.0/email/send-forms poli těla z EmailJS:service_id,template_id,user_id,template_params,accessToken.
Co je jinak
Sekce “Co je jinak”- ID a klíče jsou frontmailovské:
svc_…,tpl_…,pk_…,sk_…. - Šablony používají syntaxi Frontmailu (Handlebars) a typované parametry. Většina šablon
s
{{variable}}funguje beze změny; viz průvodce migrací. - Když vám dojdou kredity, Frontmail může odpovědět zadrženou zprávou (pořád jde o úspěch).
Kompatibilní vrstva ji hlásí jako
status: 200sdeliveryStatus: 'held';@frontmail/browservrací rovnoustatus: 'held'. - Frontmail automaticky opakuje síťové chyby a 5xx s idempotency klíčem.
accessToken(soukromý klíč) se v prohlížeči odmítne:send/sendFormskončí sestatus: 400aerror.code === 'private_key_in_browser'. Z kódu pro frontend ho odstraňte – viz průvodce migrací. Kód na serveru (Node.js, bezdocument) ho předávat může.sendFormpřeskočí pole s heslem, anti-CSRF pole běžných frameworků a rezervované názvy jakoaccessToken(viz sendForm).blockHeadless,blockListalimitRateběží v prohlížeči a slouží pro pohodlí, ne jako zabezpečení – limity nastavte v sekci Zabezpečení v dashboardu.
Až budete připraveni, přechod na @frontmail/browser nebo SDK pro framework je
jednoduchý a získáte typované výsledky, typované parametry a getStatus.