Preskočiť na obsah

Zoznam zmien

Tu sú uvedené zmeny, ktoré ovplyvňujú verejné API alebo SDK. Balíky SDK dodržiavajú sémantické verziovanie; ich podrobné zoznamy zmien sa zverejňujú s každým vydaním na npm.

SendGrid už nepodporujeme (október 2026)

Section titled “SendGrid už nepodporujeme (október 2026)”

Od 1. októbra 2026 už SendGrid nie je k dispozícii ako poskytovateľ e-mailov. Ak ste posielali cez službu SendGrid, prejdite na iného API poskytovateľa, napríklad Resend, Postmark, Mailgun, Brevo alebo Mailjet, a novú službu potom vyberte vo svojich šablónach (aj ako záložnú službu, ak ste ju tam používali).

Jednu šablónu teraz môžete posielať vo viacerých jazykoch – pozrite Preklady šablón.

  • Dashboard: lišta Jazyky v editore šablóny. Pridajte k šablóne až 29 jazykových verzií (akýkoľvek jazyk BCP 47, napr. hu alebo pt-BR) – ako kópiu predvoleného jazyka, prázdnu alebo strojovým prekladom. Jazykové verzie prekladajú predmet, HTML, text a meno odosielateľa; príjemcovia, parametre a nastavenia zostávajú spoločné. Každý preklad má vlastné verzie s možnosťou návratu a štítky Zastaraný / Strojový. Predvoleným jazykom šablóny môže byť akýkoľvek jazyk (Nastavenia → Všeobecné → Predvolený jazyk). Export a import zahŕňajú jazykové verzie.
  • Strojový preklad s vlastným kľúčom: OpenAI, Anthropic, Google Gemini alebo DeepL s vlastným API kľúčom organizácie (Nastavenia → Strojový preklad, vlastníci a administrátori). Frontmail overí, že parametre, odkazy a štruktúra HTML zostali zachované (translation_invalid). 30 prekladov za hodinu na organizáciu, najviac 60 000 znakov. Nové chybové kódy translation_not_configured, translation_invalid, translation_provider_auth, translation_provider_error.
  • API: nepovinné locale v POST /v1/send a v položkách /v1/send-batch, pole formulára fm_locale v POST /v1/send-form (pole s názvom locale zostáva parametrom šablóny). Výber: presný jazyk → rovnaký základný jazyk (de-AT → de) → predvolený jazyk; chybne zapísaná značka je 400 invalid_body. Odpovede na odoslanie a výsledky dávky vracajú použité locale; GET /v1/templates vracia locales. Automatické odpovede sa riadia jazykom pôvodnej správy, Odoslať znova ho zachová. Cesty kompatibilné s EmailJS vždy používajú predvolený jazyk.
  • Formátovanie: dátumy, čísla, sumy a pätička v tarife Free sa teraz riadia jazykom, v ktorom e-mail odchádza (predtým jazykom organizácie).
  • JavaScript SDK (ďalšie vydanie, 0.2.0 – spolu so sprísnením zabezpečenia SDK nižšie): voľba locale v send / sendForm (sendForm ju posiela ako fm_locale), prop locale komponentu <FrontmailForm> (React, Vue, Svelte) a use:frontmailForm, result.locale; @frontmail/node: locale v send / položkách sendBatch, templates.list() vracia locales a frontmail types vypíše jazyky každej šablóny a typ <TemplateName>Locale. @frontmail/emailjs-compat sa nemení (len predvolený jazyk).
  • Android / Kotlin SDK 0.2.0: SendOptions(locale = "de"), SendResult.locale.
  • iOS / Swift SDK 0.2.0: SendOptions(locale: "de"), SendResult.locale.

Sprísnenie zabezpečenia: okraj verejného API a kľúče (september 2026)

Section titled “Sprísnenie zabezpečenia: okraj verejného API a kľúče (september 2026)”

Zmeny správania – skontrolujte, prosím, svoju integráciu:

  • Požiadavky bez Origin a Referer (servery, curl, natívne aplikácie) s verejným kľúčom teraz vyžadujú Povoliť mobilné aplikácie – aj keď je váš zoznam povolených webov prázdny. Predtým ich prázdny zoznam prijímal. Organizáciám, ktoré takéto požiadavky posielali za posledných 30 dní, sa prepínač zapol automaticky. Inak: 403 origin_not_allowed (details.reason: "no_origin"). Na serveroch použite súkromný kľúč.
  • Súkromné kľúče z prehliadačov sa odmietajú: požiadavka so súkromným kľúčom (Authorization: Bearer alebo pole accessToken v štýle EmailJS), ktorá nesie hlavičku Origin, dostane novú chybu 403 private_key_in_browser. Pre interné nástroje sa to dá povoliť: Zabezpečenie → Povoliť súkromné kľúče v prehliadačoch.
  • CAPTCHA pre požiadavky bez Origin sa overuje zdieľaným mobilným widgetom Frontmailu, len keď je zapnuté Povoliť mobilné aplikácie. Testovacie kľúče Cloudflare sa v produkcii odmietajú.
  • Zisťovanie stavu: token stavu posielajte v hlavičke X-Frontmail-Status-Token; ?token= pre staršie SDK funguje aj naďalej.
  • Rate limity: klienti s IPv6 zdieľajú limit na IP adresu v rámci siete /64. Limity na kľúč a organizáciu a detekcia anomálií teraz počítajú len požiadavky, ktoré prešli kontrolou šablóny a CAPTCHA, takže záplava neplatných požiadaviek už neblokuje vašich skutočných návštevníkov.
  • Prílohy: názvy súborov sa čistia (neviditeľné a bidi znaky, bodky na konci) a odmieta sa viac nebezpečných typov (HTML, SVG, obrazy diskov, OneNote, Office s makrami, .url, .lnk, …). Nahrávanie s verejným kľúčom (POST /v1/uploads) vyžaduje šablónu, ktorá prijíma prílohy, a má denný limit bajtov na organizáciu.
  • Multipart template_id / service_id dlhšie ako 64 znakov → 400 invalid_body (predtým 500).
  • API, API dashboardu a prihlásenie prijímajú len prevádzku, ktorá prichádza cez CDN Frontmailu.
  • POST /v1/send, /v1/send-form, /v1/send-batch, /v1/uploads, GET /v1/messages/:id, GET /v1/history, GET /v1/templates a aliasy kompatibilné s EmailJS.
  • Jednotný formát chýb s docs_url; podpora Idempotency-Key (24 h).
  • Fronta pozdržaných e-mailov so stavmi held / held_service_error a režimami hold / reject.
  • Zámok obsahu pri odosielaní s verejným kľúčom do šablón s dynamickým príjemcom: povinná CAPTCHA (dynamic_recipient_requires_captcha), pevné polia odosielateľa (dynamic_field_not_allowed), žiadne parametre typu HTML a texty ≤ 500 znakov, odkazy len na povolené domény (link_not_allowed) a najviac 5 e-mailov na príjemcu za deň. Adresa odosielateľa z parametrov sa odmieta pri každom odoslaní s verejným kľúčom. Uzamknuté sú aj automatické odpovede. Nové nastavenia: security.allowedLinkDomains, security.recipientDailyLimit, v šablóne enforceLinkAllowlist. Pozrite si Povolené odkazy a zámok obsahu.
  • @frontmail/browser 0.x (ESM + UMD, pripnite verziu so SRI), @frontmail/react, @frontmail/react-native, @frontmail/vue, @frontmail/svelte, @frontmail/node s CLI frontmail types, @frontmail/emailjs-compat.
  • Automatické opakovanie pokusov s exponenciálnym odstupom a idempotency keys; typované chyby.
  • Dvojstupňové overenie sa teraz vyžaduje pri každom spôsobe prihlásenia – vrátane prihlasovacích odkazov z e-mailu a Google / GitHub – a zapnúť ho možno len s overenou e-mailovou adresou.
  • Prihlasovacie a overovacie odkazy otvorené v inom prehliadači si vyžiadajú potvrdenie (alebo tento prehliadač neprihlásia), takže odkaz, ktorý vám poslal niekto iný, vás nemôže prihlásiť do jeho účtu.
  • Zmena prihlasovacieho e-mailu vyžaduje vaše heslo a schválenie z aktuálnej adresy.
  • Administrátori už nemôžu prideľovať rolu Fakturácia; administrátorov a členov s rolou Fakturácia spravuje len vlastník.
  • URL webhookov poskytovateľov sú skryté pred čitateľmi a členmi s rolou Fakturácia a dajú sa vygenerovať nanovo (Vygenerovať novú URL webhooku).
  • Vlastné SMTP servery musia používať verejnú adresu a port 25, 465, 587 alebo 2525.
  • Prílohy šablón môžu používať len súbory nahrané tou istou organizáciou.
  • Pozvánky do tímu sú obmedzené na príjemcu a organizáciu; názvy organizácií nesmú obsahovať odkazy.
  • Údaje o kliknutiach exportované do analytiky už neobsahujú query stringy (tokeny, e-maily).

Sprísnenie zabezpečenia SDK (ďalšie vydanie SDK, 0.2.0)

Section titled “Sprísnenie zabezpečenia SDK (ďalšie vydanie SDK, 0.2.0)”
  • Nekompatibilná zmena: SDK pre prehliadač (@frontmail/browser, React, Vue, Svelte, @frontmail/emailjs-compat) vyhodia private_key_in_browser, keď sa vo webovom prehliadači použije súkromný kľúč (privateKey, v compat accessToken); @frontmail/node sa tam odmietne spustiť. Vypnutie: dangerouslyAllowPrivateKeyInBrowser: true.
  • sendForm preskakuje polia s heslom, anti-CSRF polia a rezervované názvy; nové formFields: { include, exclude }.
  • getStatus posiela token stavu v hlavičke X-Frontmail-Status-Token namiesto ?token=.
  • <TurnstileWebView> v React Native je uzamknutý na stránku widgetu (originy, navigácia, správy).
  • CDN: sri.json s hashmi integrity vedľa každého verziovaného balíka; dokumentácia používa URL s pripnutou verziou a Subresource Integrity.
  • Editor HTML šablón so živým náhľadom, typovanými parametrami, kontrolami, verziami a galériou (EN/CS).
  • Služby pre SMTP, Mailgun, Amazon SES, Postmark, SendGrid, Mailjet, Brevo, Resend, Gmail a Outlook / Microsoft 365, so záložnou službou a kontrolami stavu.
  • Kredity: tarify, kreditové balíky, prečerpanie, automatické dobíjanie; štatistiky využitia.

Fakturácia a kredity (bezpečnostné opravy)

Section titled “Fakturácia a kredity (bezpečnostné opravy)”
  • Ročné tarify teraz dostávajú mesačnú kvótu a rezervu na prečerpanie v každom mesiaci obdobia (predtým len v prvom mesiaci).
  • Prečerpanie využité v ročných tarifoch sa fakturuje mesačne samostatnou faktúrou; prečerpanie využité pred koncom predplatného (zrušenie, vymazanie organizácie) sa fakturuje okamžite.
  • Pri prechode z mesačného na ročné predplatné sa prenášajú kredity minuté v aktuálnom mesiaci.
  • Zmeny tarifu sa odmietajú, kým má predplatné nezaplatenú faktúru (409 conflict, details.reason: "subscription_not_active").
  • Sporné (reklamované) platby odstránia kredity, ktoré sa za ne kúpili; ak spor vyhráme, kredity sa obnovia. Refundácie sa spracúvajú po jednotlivých refundáciách.
  • Nové: fronta pozdržaných e-mailov je obmedzená na organizáciu; nad limit dostanú požiadavky 402 insufficient_credits s details.reason: "hold_queue_full".
  • Nové: e-maily odoslané s verejným kľúčom nečerpajú prečerpanie ani nespúšťajú automatické dobíjanie, pokiaľ to nie je povolené v Fakturácia → Kúpiť kredity → Výdavky z prevádzky s verejným kľúčom (predvolene vypnuté, aj pre existujúce organizácie).
  • Vlastné SMTP servery: zlyhania po tom, čo server správu prijal, sa už nevracajú; ochrana podľa miery refundácií na organizáciu zastaví vracanie kreditov, keď sú zlyhania neobvykle časté.
  • Webhooky poskytovateľov blokujú len skutočných príjemcov správy; webhooky Amazon SES si zapamätajú SNS tému prvej podpísanej správy. Odoslať znova odmieta šablóny zmrazené po prechode na nižší tarif.