Egy évtized hatás

A JavaScript és node.js Egyes csomagok nélkülözhetetlenek – naponta milliószor töltik le, és világszerte működtetik az alkalmazásokat. Ezen eszközök mögött a nyílt forráskódú minőségre összpontosító fejlesztők állnak. Ma bemutatjuk, hogyan segít csapatunk olyan npm-csomagok felépítésében és karbantartásában, amelyek a JavaScript-ökoszisztéma kulcsfontosságú részévé váltak.

Az úttörők, akik megbíznak bennünk: Isaac Z. Schlueter és az e-mail továbbítása

Büszkék vagyunk rá Isaac Z. Schlueter (GitHub: isaacs) felhasználóként. Isaac teremtett tengerszint felett és segített építeni node.js. A Forward Email iránti bizalma azt mutatja, hogy a minőségre és a biztonságra összpontosítunk. Isaac több domainhez használja az E-mail továbbítást, beleértve az izs.me-t is.

Isaac hatalmas hatással van a JavaScriptre. 2009-ben az elsők között látta meg a Node.js-ben rejlő lehetőségeket Ryan Dahl, aki létrehozta a platformot. Ahogy Isaac mondta egy interjú az Increment magazinnal: "Ennek a nagyon kicsi közösségnek a közepette, amelyben egy csomó ember próbált kitalálni, hogyan valósítsák meg a szerveroldali JS-t, Ryan Dahl előállt a Node-dal, ami nagyon egyértelműen a helyes megközelítés volt. Ezzel bedobtam a chipjeimet, és 2009 közepén nagyon belejöttem."

[!JEGYZET] A Node.js története iránt érdeklődők számára kiváló dokumentumfilmek állnak rendelkezésre, amelyek bemutatják a fejlődését, többek között A Node.js története és 10 dolog, amit sajnálok a Node.js-ben – Ryan Dahl. Ryan Dahlé személyes weboldal értékes betekintést is tartalmaz a munkásságába.

Az npm létrehozásától a Node.js vezetésig

Isaac 2009 szeptemberében hozta létre az npm-et, az első használható verzió pedig 2010 elején jelent meg. Ez a csomagkezelő a Node.js egyik kulcsfontosságú szükségletét elégítette ki, lehetővé téve a fejlesztők számára a kód egyszerű megosztását és újrafelhasználását. szerint a Node.js Wikipédia oldal, "2010 januárjában egy csomagkezelőt vezettek be a Node.js környezethez npm néven. A csomagkezelő lehetővé teszi a programozók számára a Node.js csomagok közzétételét és megosztását a hozzá tartozó forráskóddal együtt, és célja a csomagok telepítésének, frissítésének és eltávolításának egyszerűsítése."

Amikor Ryan Dahl 2012 januárjában visszalépett a Node.js-től, Isaac vette át a projekt vezetői posztját. Ahogy megjegyezték összefoglalója, ő "Több alapvető Node.js alap API fejlesztését vezette, beleértve a CommonJS modulrendszert, fájlrendszer API-kat és adatfolyamokat" és "2 éven keresztül a projekt BDFL-jeként (Benevolent Dictator For Life) működött, biztosítva a Node.js v0.6-tól v0.10-ig terjedő verzióinak egyre jobb minőségét és megbízható összeállítási folyamatát."

Isaac végigvezette a Node.js-t egy kulcsfontosságú növekedési időszakon, és olyan szabványokat állított fel, amelyek a mai napig formálják a platformot. Később 2014-ben elindította az npm, Inc.-t, hogy támogassa az npm registry-t, amelyet korábban önállóan vezetett.

Köszönjük Isaacnak a JavaScripthez nyújtott hatalmas hozzájárulását, és továbbra is számos általa létrehozott csomagot használunk. Munkája megváltoztatta azt, ahogyan szoftvereket készítünk, és azt, hogy fejlesztők milliói osztják meg a kódot világszerte.

Az építész a kód mögött: Nick Baugh utazása

Nyílt forráskódú sikerünk középpontjában Nick Baugh, a Forward Email alapítója és tulajdonosa áll. A JavaScript területén végzett munkája közel 20 évet ölel fel, és számtalan fejlesztő alakított ki alkalmazásokat. Nyílt forráskódú útja a technikai készségeket és a közösségi vezetést egyaránt mutatja.

Expressz Technikai Bizottság és alapvető hozzájárulások

Nick webes keretrendszerben szerzett szakértelmével helyet szerzett neki Expressz műszaki bizottság, ahol az egyik legtöbbet használt Node.js keretrendszerben segített. Nick mostantól inaktív tagként szerepel a listán Expressz közösségi oldal.

[!FONTOS] Az Expresst eredetileg TJ Holowaychuk, egy termékeny nyílt forráskódú közreműködő hozta létre, aki a Node.js ökoszisztéma nagy részét alakította. Hálásak vagyunk TJ alapító munkájáért, és tiszteljük az övét úgy dönt, hogy szünetet tart kiterjedt nyílt forráskódú hozzájárulásaiból.

Tagjaként a Expressz műszaki bizottság, Nick nagy figyelmet fordított a részletekre olyan kérdésekben, mint a tisztázás req.originalUrl dokumentáció és többrészes űrlapkezelési problémák javítása.

Koa-keret-hozzájárulások

Nick munkája a Koa keret– az Express modern, könnyebb alternatívája, amelyet szintén TJ Holowaychuk hozott létre – ez is mutatja a jobb webfejlesztő eszközök iránti elkötelezettségét. Koa-hozzájárulásai magukban foglalják a problémákat és a kódot is lekéréseken keresztül, a hibakezelést, a tartalomtípus-kezelést és a dokumentáció fejlesztéseit.

Az Expressz és a Koa területén végzett munkája egyedülálló képet ad neki a Node.js webfejlesztésről, segítve csapatunkat olyan csomagok létrehozásában, amelyek jól működnek több keretrendszerrel.

Egyéni közreműködőből szervezetvezetővé

Ami a meglévő projektek segítésének indult, az egész csomag ökoszisztémák létrehozásává és karbantartásává nőtte ki magát. Nick több GitHub szervezetet alapított – köztük Kabin, Spam szkenner, Továbbító e-mail, enged, és Bree-mindegyik speciális igényeket old meg a JavaScript közösségben.

Ez a közreműködőből vezetővé váltás megmutatja Nick vízióját a jól megtervezett szoftverekről, amelyek valódi problémákat oldanak meg. A kapcsolódó csomagok fókuszált GitHub-szervezetek alatt történő szervezésével olyan eszközökoszisztémákat épített ki, amelyek együtt működnek, miközben modulárisak és rugalmasak maradnak a szélesebb fejlesztői közösség számára.

GitHub-szervezeteink: Az innováció ökoszisztémái

Nyílt forráskódú munkánkat fókuszált GitHub-szervezetek köré szervezzük, amelyek mindegyike konkrét igényeket old meg JavaScriptben. Ez a struktúra összefüggő csomagcsaládokat hoz létre, amelyek jól együttműködnek, miközben modulárisak maradnak.

Kabin: Strukturált naplózás modern alkalmazásokhoz

A Kabin szervezés a mi megoldásunk az egyszerű, hatékony alkalmazásnaplózásra. A fő cabin csomag közel 900 GitHub-sztárt és több mint 100 000 letöltést tartalmaz hetente[^1]. A Cabin strukturált naplózást biztosít, amely olyan népszerű szolgáltatásokkal működik, mint a Sentry, LogDNA és Papertrail.

A Cabint az átgondolt API és bővítményrendszer teszi különlegessé. Támogató csomagok, mint pl axe Express middleware-hez és parse-request A HTTP-kérések elemzéséhez az elszigetelt eszközök helyett a teljes megoldások iránti elkötelezettségünket mutatjuk be.

A bson-objectid csomag külön említést érdemel, mindössze két hónap alatt több mint 1,7 millió letöltéssel[^2]. Ez a könnyű MongoDB ObjectID implementáció a fejlesztők kedvencévé vált, akiknek teljes MongoDB-függőség nélküli azonosítókra van szükségük.

Spam Scanner: az e-mailekkel való visszaélés elleni küzdelem

A Spam Scanner szervezet megmutatja elkötelezettségünket a valódi problémák megoldása iránt. A fő spamscanner csomag fejlett e-mail spam észlelést biztosít, de ez a url-regex-safe csomag, amelyet elképesztően elfogadtak.

Két hónap alatt több mint 1,2 millió letöltéssel[^3], url-regex-safe kijavítja a kritikus biztonsági problémákat más URL-észlelési reguláris kifejezésekben. Ez a csomag bemutatja a nyílt forráskóddal kapcsolatos megközelítésünket: közös probléma keresése (ebben az esetben RedoS az URL-ellenőrzés sérülékenységei), szilárd megoldás létrehozása és gondos karbantartása.

Bree: Modern munkaütemezés dolgozói szálakkal

A Bree szervezet a válaszunk egy gyakori Node.js kihívásra: megbízható munkaütemezés. A fő bree csomag, több mint 3100 GitHub-csillaggal, modern feladatütemezőt biztosít, amely Node.js worker szálakat használ a jobb teljesítmény és megbízhatóság érdekében.

[!JEGYZET] A Bree azután jött létre, hogy segítettünk fenntartani Napirend, a tanulságok alkalmazásával jobb munkaütemező felépítéséhez. Az Agenda-hozzájárulásaink segítettek megtalálni a módokat a munkabeosztás javítására.

Miben különbözik Bree más ütemezőktől, mint például az Agenda:

  • Nincsenek külső függőségek: Az Agendától eltérően, amelynek MongoDB-re van szüksége, a Bree-nek nincs szüksége Redisre vagy MongoDB-re a feladatállapot kezeléséhez.
  • Munkásszálak: A Bree Node.js worker szálakat használ a sandbox-folyamatokhoz, így jobb elkülönítést és teljesítményt biztosít.
  • Egyszerű API: A Bree részletes vezérlést kínál egyszerűséggel, megkönnyítve az összetett ütemezési igények megvalósítását.
  • Beépített támogatás: Az olyan dolgok, mint a kecses újratöltés, a cron munkák, a dátumok és az emberbarát időpontok alapértelmezés szerint szerepelnek benne.

Bree kulcsfontosságú része forwardemail.net, olyan kritikus háttérfeladatok kezelése, mint az e-mailek feldolgozása, tisztítása és ütemezett karbantartása. A Bree használata a Forward Email szolgáltatásban azt mutatja, hogy elkötelezettek vagyunk saját eszközeink gyártásban való használata iránt, biztosítva, hogy azok megfeleljenek a magas megbízhatósági szabványoknak.

Használunk és értékelünk más nagyszerű worker szál csomagokat is, mint pl medence és a HTTP kliensek szeretik tizenegy. A Piscina a Bree-hez hasonlóan Node.js munkaszálakat használ a hatékony feladatfeldolgozáshoz. köszönjük Matthew Hill, aki az undici-t és a piscinát is karbantartja, a Node.js-hoz való jelentős hozzájárulásáért. Matteo a Node.js műszaki irányítóbizottságának tagja, és jelentősen továbbfejlesztette a HTTP-kliens képességeit a Node.js-ben.

E-mail továbbítás: Nyílt forráskódú e-mail infrastruktúra

A legambiciózusabb projektünk az Továbbító e-mail, egy nyílt forráskódú e-mail szolgáltatás, amely e-mail-továbbítást, tárolást és API-szolgáltatásokat biztosít. A fő adattár több mint 1100 GitHub-csillaggal rendelkezik[^4], ami azt mutatja, hogy a közösség nagyra értékeli a szabadalmaztatott e-mail szolgáltatások alternatíváját.

A preview-email a szervezettől származó csomag két hónap alatt több mint 2,5 millió letöltéssel[^5] az e-mail sablonokkal dolgozó fejlesztők alapvető eszközévé vált. Azáltal, hogy egyszerű módot biztosít az e-mailek előnézetének megtekintésére a fejlesztés során, megoldja az e-mail-kompatibilis alkalmazások felépítésének egyik gyakori problémáját.

Lad: Essential Koa Utilities and Tools

A Legényszervezet alapvető segédprogramok és eszközök gyűjteményét kínálja, amelyek elsősorban a Koa keretrendszerének fejlesztésére összpontosítanak. Ezek a csomagok megoldják a webfejlesztés gyakori kihívásait, és úgy lettek kialakítva, hogy zökkenőmentesen működjenek együtt, miközben egymástól függetlenül hasznosak maradnak.

koa-better-error-handler: Továbbfejlesztett hibakezelés a Koa számára

koa-better-error-handler jobb hibakezelési megoldást kínál a Koa alkalmazásokhoz. Ez a csomag több mint 50 GitHub-csillaggal rendelkezik ctx.throw felhasználóbarát hibaüzeneteket állíthat elő, miközben figyelembe veszi a Koa beépített hibakezelőjének számos korlátozását:

  • Felismeri és megfelelően kezeli a Node.js DNS-, a Mongoose- és a Redis-hibákat
  • Felhasználások Fellendülés konzisztens, jól formázott hibaválaszok létrehozásához
  • Megőrzi a fejléceket (ellentétben a Koa beépített kezelőjével)
  • Fenntartja a megfelelő állapotkódokat, az alapértelmezett 500 helyett
  • Támogatja a gyorsüzeneteket és a munkamenetek megőrzését
  • HTML hibalistákat biztosít az érvényesítési hibákhoz
  • Több választípust támogat (HTML, JSON és egyszerű szöveg)

Ez a csomag különösen értékes, ha együtt használjuk koa-404-handler átfogó hibakezeléshez a Koa alkalmazásokban.

útlevél: Lad hitelesítése

@ladjs/passport speciális fejlesztésekkel bővíti a népszerű Passport.js hitelesítési köztes szoftvert a modern webalkalmazásokhoz. Ez a csomag többféle hitelesítési stratégiát támogat:

  • Helyi hitelesítés e-maillel
  • Jelentkezzen be az Apple-lel
  • GitHub hitelesítés
  • Google hitelesítés
  • Egyszeri jelszó (OTP) hitelesítés

A csomag nagymértékben testreszabható, lehetővé téve a fejlesztők számára, hogy a mezőneveket és kifejezéseket az alkalmazás követelményeinek megfelelően módosítsák. Úgy tervezték, hogy zökkenőmentesen integrálódjon a Mongoose-szal a felhasználókezeléshez, így ideális megoldást jelent a robusztus hitelesítést igénylő Koa-alapú alkalmazásokhoz.

kecses: Elegáns alkalmazásleállás

@ladjs/graceful megoldja a Node.js alkalmazások kecses leállításának kritikus kihívását. A több mint 70 GitHub-csillaggal ez a csomag biztosítja, hogy az alkalmazás tisztán leálljon anélkül, hogy adatvesztés vagy kapcsolatok fennakadása maradna. A legfontosabb jellemzők a következők:

  • Támogatás a HTTP-kiszolgálók kecsesen bezárásához (Express/Koa/Fastify)
  • Az adatbázis-kapcsolatok tiszta leállítása (MongoDB/Mongoose)
  • A Redis ügyfelek megfelelő zárása
  • Bree munkaütemezők kezelése
  • Egyedi leállításkezelők támogatása
  • Konfigurálható időtúllépési beállítások
  • Integráció naplózó rendszerekkel

Ez a csomag elengedhetetlen az éles alkalmazásokhoz, ahol a váratlan leállások adatvesztéshez vagy sérüléshez vezethetnek. A megfelelő leállítási eljárások végrehajtásával, @ladjs/graceful segít biztosítani az alkalmazás megbízhatóságát és stabilitását.

Üzemidő: Nyílt forráskódú üzemidő figyelés

A Uptime szervezet kifejezi elkötelezettségünket az átlátható, nyílt forráskódú felügyelet mellett. A fő upptime A repository több mint 13 000 GitHub-sztárral rendelkezik, így ez az egyik legnépszerűbb projekt, amelyben közreműködünk. Az Uptime GitHub-alapú üzemidő-figyelőt és állapotoldalt biztosít, amely teljes mértékben szerver nélkül működik.

Az Uptime-ot használjuk saját állapotoldalunkhoz a címen https://status.forwardemail.net címen elérhető forráskóddal https://github.com/forwardemail/status.forwardemail.net.

Ami az Upptime-ot különlegessé teszi, az az architektúrája:

  • 100%-ban nyílt forráskódú: Minden összetevő teljesen nyílt forráskódú és testreszabható.
  • Üzemeltető: GitHub: Kihasználja a GitHub-műveleteket, problémákat és oldalakat egy szerver nélküli megfigyelési megoldáshoz.
  • Nincs szükség szerverre: A hagyományos felügyeleti eszközökkel ellentétben az Upptime nem igényli a szerver futtatását vagy karbantartását.
  • Automatikus állapotoldal: Gyönyörű állapotoldalt hoz létre, amelyet a GitHub oldalakon lehet tárolni.
  • Erőteljes értesítések: Integrálható különféle értesítési csatornákkal, beleértve az e-mailt, az SMS-t és a Slack-et.

A felhasználói élmény javítása érdekében integráltuk @octokit/core a forwardemail.net kódbázisba, hogy valós idejű állapotfrissítéseket és eseményeket jelenítsen meg közvetlenül a webhelyünkön. Ez az integráció egyértelmű átláthatóságot biztosít a felhasználók számára, ha problémák merülnek fel a teljes veremben (Webhely, API, MongoDB, Redis, SQLite, SMTP, POP3, IMAP, Bree stb.), azonnali köszöntőértesítésekkel, jelvényikon-változásokkal, figyelmeztető színekkel stb.

Az @octokit/core könyvtár lehetővé teszi számunkra, hogy valós idejű adatokat gyűjtsünk be az Upptime GitHub tárhelyünkből, feldolgozzuk és felhasználóbarát módon megjelenítsük. Ha bármely szolgáltatás kiesik vagy leromlott a teljesítménye, a felhasználók azonnal értesítést kapnak vizuális jelzőfényeken keresztül anélkül, hogy el kellene hagyniuk a fő alkalmazást. Ez a zökkenőmentes integráció biztosítja, hogy felhasználóink mindig naprakész információkkal rendelkezzenek rendszerünk állapotáról, növelve az átláthatóságot és a bizalmat.

Az Upptime-ot több száz szervezet vette át, amelyek átlátható, megbízható módot keresnek szolgáltatásaik nyomon követésére és állapotkommunikációjára a felhasználók felé. A projekt sikere megmutatja a meglévő infrastruktúrát (jelen esetben a GitHubot) kihasználó eszközök építésének erejét a gyakori problémák új módokon történő megoldására.

Hozzájárulásunk a Forward Email ökoszisztémához

Míg nyílt forráskódú csomagjainkat a fejlesztők világszerte használják, ezek alkotják saját Forward Email szolgáltatásunk alapját is. Ez a kettős szerep – ezen eszközök létrehozóiként és használóiként egyaránt – egyedülálló perspektívát ad a valós alkalmazásukra, és folyamatos fejlődést ösztönöz.

A csomagoktól a gyártásig

Az egyedi csomagoktól az összefüggő gyártási rendszerig vezető út gondos integrációt és bővítést igényel. E-mail továbbítás esetén ez a folyamat a következőket tartalmazza:

  • Egyéni bővítmények: E-mail-specifikus bővítmények készítése nyílt forráskódú csomagjainkhoz, amelyek megfelelnek egyedi követelményeinknek.
  • Integrációs minták: Minták kidolgozása arra vonatkozóan, hogy ezek a csomagok hogyan működnek együtt éles környezetben.
  • Teljesítményoptimalizálások: A teljesítmény szűk keresztmetszete azonosítása és kezelése, amelyek csak nagy léptékben jelentkeznek.
  • Biztonsági keményedés: További biztonsági rétegek hozzáadása az e-mailek kezeléséhez és a felhasználói adatok védelméhez.

Ez a munka több ezer órányi fejlesztést jelent magukon az alapvető csomagokon túl, ami egy robusztus, biztonságos e-mail szolgáltatást eredményez, amely kihasználja nyílt forráskódú hozzájárulásaink legjavát.

A visszacsatolási hurok

A saját csomagok termelésben való használatának talán legértékesebb aspektusa az általa létrehozott visszacsatolási hurok. Ha korlátozásokkal vagy szélsőséges esetekkel találkozunk a Forward Email szolgáltatásban, akkor nem csak helyileg javítjuk őket – javítjuk az alapul szolgáló csomagokat, ami mind a szolgáltatásunk, mind a szélesebb közösség javára válik.

Ez a megközelítés számos fejlesztést eredményezett:

  • Bree's Graceful Shutdown: Az e-mail továbbítása az állásidő nélküli telepítések iránti igénye a Bree továbbfejlesztett kecses leállítási képességéhez vezetett.
  • Spam Scanner mintafelismerése: Az e-mailek továbbításában észlelt valós spam-minták tájékoztatták a Spam Scanner észlelési algoritmusait.
  • A kabin teljesítményoptimalizálása: A nagy mennyiségű gyártás során végzett naplózás olyan optimalizálási lehetőségeket tárt fel a Cabinben, amelyek minden felhasználó számára előnyösek.

A nyílt forráskódú munkánk és a termelési szolgáltatásunk közötti pozitív körfolyamat fenntartásával biztosítjuk, hogy csomagjaink gyakorlatias, harci tesztelt megoldások maradjanak, nem pedig elméleti megvalósítások.

Továbbítás Az e-mail alapelvei: A kiválóság alapja

A Forward Email olyan alapelvek szerint készült, amelyek minden fejlesztési döntésünket vezérlik. Ezek az alapelvek, részletesen a mi weboldal, biztosítsa, hogy szolgáltatásunk továbbra is fejlesztőbarát, biztonságos és a felhasználói adatvédelemre összpontosít.

Mindig fejlesztőbarát, biztonság-központú és átlátható

Első és legfontosabb alapelvünk az, hogy fejlesztőbarát szoftvert készítsünk, miközben a legmagasabb szintű biztonsági és adatvédelmi követelményeket fenntartjuk. Hiszünk abban, hogy a technikai kiválóság soha nem mehet a használhatóság rovására, és az átláthatóság bizalmat épít közösségünkben.

Ez az elv megmutatkozik részletes dokumentációnkban, egyértelmű hibaüzeneteinkben és a sikerekről és a kihívásokról szóló nyílt kommunikációnkban. Azzal, hogy teljes kódbázisunkat nyílt forráskódúvá tesszük, ellenőrzésre és együttműködésre hívunk fel, erősítve ezzel szoftverünket és a szélesebb ökoszisztémát.

Időtesztelt szoftverfejlesztési elvek betartása

Számos bevált szoftverfejlesztési elvet követünk, amelyek évtizedek óta bizonyították értéküket:

  • MVC: Az aggályok elkülönítése a Modell-View-Controller mintán keresztül
  • Unix filozófia: Moduláris komponensek létrehozása, amelyek egy dolgot jól teljesítenek
  • KISS: Egyszerű és egyértelmű
  • DRY: Ne ismételje meg magát, elősegítve a kód újrafelhasználását
  • YAGNI: Nem lesz rá szüksége, elkerülve az idő előtti optimalizálást
  • Tizenkét faktor: Bevált gyakorlatok követése a modern, méretezhető alkalmazások létrehozásához
  • Occam borotvája: A követelményeknek megfelelő legegyszerűbb megoldás kiválasztása
  • Dogfooding: Saját termékeink széles körű használata

Ezek az alapelvek nem csupán elméleti koncepciók – mindennapi fejlesztési gyakorlatainkba is beágyazódnak. Például a Unix filozófiához való ragaszkodásunk nyilvánvaló abban, ahogyan npm-csomagjainkat felépítettük: kicsi, fókuszált modulok, amelyek összetett problémák megoldása érdekében összeállíthatók.

Célzás a Scrappy, Bootstrapped Fejlesztő

Kifejezetten a selejtes, bootstrapped és ramen nyereséges fejlesztő. Ez a fókusz mindent alakít az árképzési modellünktől a műszaki döntéseinkig. Megértjük a korlátozott erőforrásokkal rendelkező termékek gyártásának kihívásait, mert mi magunk is ott voltunk.

Ez az elv különösen fontos a nyílt forráskód megközelítésében. Olyan csomagokat készítünk és karbantartunk, amelyek valódi problémákat oldanak meg a fejlesztők számára vállalati költségvetés nélkül, így hatékony eszközöket mindenki számára elérhetővé teszünk, erőforrásaitól függetlenül.

Gyakorlati alapelvek: A továbbított e-mail kódbázis

Ezek az alapelvek jól láthatóak az E-mail továbbítás kódbázisában. A package.json fájlunk a függőségek átgondolt választékát tárja fel, amelyek mindegyikét úgy választottuk ki, hogy igazodjanak alapértékeinkhez:

  • A biztonságra fókuszáló csomagok, mint pl mailauth e-mail hitelesítéshez
  • Fejlesztőbarát eszközök, mint pl preview-email a könnyebb hibakeresés érdekében
  • Moduláris alkatrészek, mint a különféle p-* közművek a Sindre Sorhustól

Ezeket az elveket az idők során következetesen követve olyan szolgáltatást hoztunk létre, amelyre a fejlesztők rábízhatják e-mail infrastruktúrájukat – biztonságos, megbízható és a nyílt forráskódú közösség értékeivel összhangban.

Adatvédelem tervezés által

Az adatvédelem nem egy utólagos gondolat vagy marketing funkció a Forward Email esetében – ez egy alapvető tervezési elv, amely szolgáltatásunk és kódunk minden aspektusáról tájékoztat:

  • Nulla hozzáférésű titkosítás: Olyan rendszereket építettünk be, amelyek technikailag lehetetlenné teszik számunkra a felhasználók e-mailjeinek elolvasását.
  • Minimális adatgyűjtés: Csak a szolgáltatásunk nyújtásához szükséges adatokat gyűjtjük, semmi többet.
  • Átlátható politikák: Adatvédelmi szabályzatunk világos, érthető nyelven, jogi szakzsargon nélkül készült.
  • Nyílt forráskódú ellenőrzés: Nyílt forráskódú kódbázisunk lehetővé teszi a biztonsági kutatóknak, hogy ellenőrizzék adatvédelmi állításainkat.

Ez az elkötelezettség kiterjed nyílt forráskódú csomagjainkra is, amelyeket az alapoktól kezdve beépített biztonsági és adatvédelmi bevált gyakorlatokkal terveztünk.

Fenntartható nyílt forráskódú

Hiszünk abban, hogy a nyílt forráskódú szoftvereknek fenntartható modellekre van szükségük ahhoz, hogy hosszú távon boldoguljanak. Megközelítésünk a következőket tartalmazza:

  • Kereskedelmi támogatás: Prémium támogatást és szolgáltatásokat kínálunk nyílt forráskódú eszközeinkhez.
  • Kiegyensúlyozott licencelés: A felhasználói szabadságot és a projekt fenntarthatóságát egyaránt védő licencek használata.
  • Közösségi elkötelezettség: Aktív együttműködés a közreműködőkkel egy támogató közösség kialakítása érdekében.
  • Átlátszó ütemtervek: Fejlesztési terveink megosztása, hogy a felhasználók ennek megfelelően tervezhessenek.

A fenntarthatóságra összpontosítva biztosítjuk, hogy nyílt forráskódú hozzájárulásaink az idő múlásával tovább növekedhessenek és javuljanak ahelyett, hogy elhanyagolnák.

A számok nem hazudnak: Megdöbbentő npm-statisztikáink letöltése

Amikor a nyílt forráskódú szoftverek hatásáról beszélünk, a letöltési statisztikák kézzelfogható mértéket adnak az elfogadásról és a bizalomról. Az általunk karbantartott csomagok közül sok elérte azt a skálát, amelyet csak kevés nyílt forráskódú projekt ér el, a letöltések együttes száma pedig milliárdokat tesz ki.

Top npm Packages by Downloads

[!FONTOS] Noha büszkék vagyunk arra, hogy segíthetünk számos magasan letöltött csomag karbantartásában a JavaScript-ökoszisztémában, szeretnénk elismerni, hogy ezek közül a csomagok közül sokat eredetileg más tehetséges fejlesztők készítettek. Az olyan csomagokat, mint a szuperagent és a szuperteszt, eredetileg TJ Holowaychuk hozta létre, akinek a nyílt forráskódhoz való termékeny hozzájárulása nagyban hozzájárult a Node.js ökoszisztéma kialakításához.

Hatásunk madártávlatából

Mindössze a 2025. februártól márciusig tartó két hónapos időszakban a legjobb csomagok, amelyekhez hozzájárulunk, és segítünk fenntartani a megdöbbentő letöltési számokat:

[!JEGYZET] Számos más csomag, amelyet segítünk fenntartani, de nem hoztunk létre, még magasabb letöltési számmal rendelkezik, beleértve form-data (738 millió+ letöltés), toidentifier (309 millió+ letöltés), stackframe (116 millió+ letöltés), és error-stack-parser (113 millió+ letöltés). Megtiszteltetés számunkra, hogy hozzájárulhatunk ezekhez a csomagokhoz, miközben tiszteletben tartjuk eredeti szerzőik munkásságát.

Ezek nem csak lenyűgöző számok – valódi fejlesztőket jelentenek, akik valódi problémákat oldanak meg olyan kóddal, amelyet mi segítünk karbantartani. Minden letöltés egy olyan példa, amikor ezek a csomagok segítettek valakinek valami értelmeset építeni, a hobbiprojektektől a milliók által használt vállalati alkalmazásokig.

Package Categories Distribution

Napi hatás méretarányosan

A napi letöltési minták konzisztens, nagy volumenű használatot mutatnak, a csúcsok pedig elérik a napi több millió letöltést[^13]. Ez a konzisztencia e csomagok stabilitásáról és megbízhatóságáról beszél – a fejlesztők nem csak próbálják ki őket; integrálják őket alapvető munkafolyamataikba, és nap mint nap tőlük függenek.

A heti letöltési minták még lenyűgözőbb számokat mutatnak, folyamatosan több tízmillió letöltés körül mozognak hetente[^14]. Ez hatalmas lábnyomot jelent a JavaScript ökoszisztémában, mivel ezek a csomagok éles környezetben futnak szerte a világon.

Túl a nyers számokon

Noha a letöltési statisztikák önmagukban lenyűgözőek, mélyebb történetet mesélnek el a közösség által ezekbe a csomagokba vetett bizalomról. A csomagok ilyen léptékű fenntartása megingathatatlan elkötelezettséget igényel:

  • Visszafelé kompatibilitás: A változtatásokat alaposan meg kell fontolni, hogy elkerüljük a meglévő megvalósítások megszakítását.
  • Biztonság: Ha több millió alkalmazás függ ezektől a csomagoktól, a biztonsági rések messzemenő következményekkel járhatnak.
  • Teljesítmény: Ebben a léptékben a kisebb teljesítményjavítások is jelentős összesített előnyökkel járhatnak.
  • Dokumentáció: A világos, átfogó dokumentáció elengedhetetlen az összes tapasztalati szintű fejlesztő által használt csomagokhoz.

A letöltések számának folyamatos növekedése az idő múlásával azt tükrözi, hogy sikerült teljesíteni ezeket a kötelezettségvállalásokat, megbízható, jól karbantartott csomagok révén bizalmat építeni a fejlesztői közösséggel.

Az ökoszisztéma támogatása: nyílt forráskódú szponzorációink

[!TIPP] A nyílt forráskódú fenntarthatóság nem csak a kód hozzájárulásáról szól, hanem a kritikus infrastruktúrát karbantartó fejlesztők támogatásáról is.

A JavaScript ökoszisztémához való közvetlen hozzájárulásunkon túl büszkék vagyunk arra, hogy kiemelkedő Node.js közreműködőket szponzorálhatunk, akik munkája számos modern alkalmazás alapját képezi. Szponzorációink közé tartozik:

Andris Reinman: Az e-mail infrastruktúra úttörője

Andris Reinman az alkotója Megjegyzés levelező, a legnépszerűbb e-mail-küldő könyvtár a Node.js számára, több mint 14 millió heti letöltéssel[^15]. Munkája kiterjed más kritikus e-mail infrastruktúra-elemekre, mint pl SMTP szerver, Mailparser, és WildDuck.

Szponzorációnk segít biztosítani ezeknek az alapvető eszközöknek a folyamatos karbantartását és fejlesztését, amelyek számtalan Node.js alkalmazás e-mail kommunikációját biztosítják, beleértve a saját Forward Email szolgáltatásunkat is.

Sindre Sorhus: Utility Package Mastermind

Sindre Sorhus az egyik legtermékenyebb nyílt forráskódú közreműködő a JavaScript ökoszisztémában, több mint 1000 npm csomaggal. A közművek, mint p-térkép, p-retry, és is-stream a Node.js ökoszisztémában használt alapvető építőelemek.

Sindre munkájának támogatásával segítjük fenntartani ezeknek a kritikus segédprogramoknak a fejlesztését, amelyek hatékonyabbá és megbízhatóbbá teszik a JavaScript-fejlesztést.

Ezek a szponzorálások tükrözik a tágabb nyílt forráskódú ökoszisztéma iránti elkötelezettségünket. Elismerjük, hogy saját sikerünk ezen és más közreműködők által lefektetett alapokra épül, és elkötelezettek vagyunk a teljes ökoszisztéma fenntarthatóságának biztosításában.

Biztonsági sebezhetőségek feltárása a JavaScript ökoszisztémában

A nyílt forráskód melletti elkötelezettségünk túlmutat a funkciók fejlesztésén, és magában foglalja azon biztonsági rések azonosítását és kezelését, amelyek fejlesztők millióit érinthetik. A JavaScript ökoszisztémához való legjelentősebb hozzájárulásunk közül több is a biztonság területén volt.

A Koa-Router Rescue

2019 februárjában Nick kritikus problémát azonosított a népszerű koa-router csomag karbantartásával kapcsolatban. Ahogy ő – számolt be a Hacker News, a csomagot az eredeti karbantartó elhagyta, így a biztonsági réseket nem kezelték, a közösséget pedig frissítések nélkül.

[!FIGYELMEZTETÉS] A biztonsági réseket tartalmazó, elhagyott csomagok jelentős kockázatot jelentenek az egész ökoszisztémára nézve, különösen akkor, ha hetente több milliószor töltik le őket.

Válaszul Nick teremtett @koa/router és segített figyelmeztetni a közösséget a helyzetre. Ezt a kritikus csomagot azóta is karbantartja, biztosítva, hogy a Koa felhasználók biztonságos, jól karbantartott útválasztási megoldással rendelkezzenek.

A ReDoS sebezhetőségeinek kezelése

2020-ban Nick azonosított egy kritikus problémát, és foglalkozott vele Regular Expression Denial of Service (ReDoS) sebezhetőség a széles körben használt url-regex csomag. Ez a sebezhetőség (SNYK-JS-URLREGEX-569472).

Ahelyett, hogy egyszerűen javította volna a meglévő csomagot, Nick létrehozta url-regex-safe, egy teljesen átírt megvalósítás, amely a biztonsági rést orvosolja, miközben fenntartja a kompatibilitást az eredeti API-val. Kiadta továbbá a átfogó blogbejegyzés elmagyarázza a sebezhetőséget és azt, hogyan lehet enyhíteni.

Ez a munka bemutatja a biztonsággal kapcsolatos megközelítésünket: nemcsak a problémák megoldását, hanem a közösség oktatását és olyan robusztus alternatívákat kínálunk, amelyek megakadályozzák a hasonló problémákat a jövőben.

A Node.js és a Chromium Security támogatása

Nick aktívan kiállt a szélesebb ökoszisztéma biztonságának javításáért is. 2020 augusztusában jelentős biztonsági problémát azonosított a Node.js-ben a HTTP-fejlécek kezelésével kapcsolatban, amelyről A Nyilvántartás.

Ez a probléma, amely a Chromium javításából eredt, lehetővé teheti a támadók számára, hogy megkerüljék a biztonsági intézkedéseket. Nick támogatása segített abban, hogy a problémát azonnal orvosolják, és több millió Node.js-alkalmazást óvtak meg az esetleges kizsákmányolástól.

Az npm infrastruktúra biztosítása

Még ugyanabban a hónapban Nick egy másik kritikus biztonsági problémát is azonosított, ezúttal az npm e-mail infrastruktúrájában. Amint arról beszámoltunk A Nyilvántartás, az npm nem valósította meg megfelelően a DMARC, SPF és DKIM e-mail hitelesítési protokollokat, ami potenciálisan lehetővé tette a támadók számára, hogy adathalász e-maileket küldjenek, amelyek látszólag az npm-től származnak.

Nick jelentése az npm e-mail biztonsági helyzetének javításához vezetett, megvédve az npm-re támaszkodó fejlesztők millióit az esetleges adathalász támadásoktól.

Hozzájárulásunk a Forward Email ökoszisztémához

A Forward Email számos kritikus nyílt forráskódú projektre épül, köztük a Nodemailer, a WildDuck és a mailauth projektekre. Csapatunk jelentős mértékben hozzájárult ezekhez a projektekhez, segítve az e-mailek kézbesítését és biztonságát érintő mély problémák azonosítását és kijavítását.

A Nodemailer alapvető funkcióinak javítása

Megjegyzés levelező a Node.js-ben történő e-mail-küldés gerince, és a mi hozzájárulásaink segítettek a rendszer robusztusabbá tételében:

  • SMTP szerver fejlesztések: Kijavítottuk az elemzési hibákat, az adatfolyamkezelési problémákat és a TLS-konfigurációs problémákat az SMTP-kiszolgálókomponensben[^16][^17].
  • Levélelemző fejlesztések: Kijavítottuk a karaktersorozat-dekódolási hibákat és az elemző problémákat, amelyek e-mail-feldolgozási hibákat okozhatnak[^18][^19].

Ezek a hozzájárulások biztosítják, hogy a Nodemailer továbbra is megbízható alapot nyújtson az e-mail-feldolgozáshoz a Node.js alkalmazásokban, beleértve az e-mailek továbbítását is.

Az e-mail hitelesítés fejlesztése a Mailauth segítségével

Mailauth kritikus e-mail hitelesítési funkciókat biztosít, és hozzájárulásaink jelentősen javították a képességeit:

  • DKIM ellenőrzési fejlesztések: Felfedeztük és jelentettük, hogy az X/Twitter DNS-gyorsítótár-problémákkal rendelkezik, amelyek DKIM-hibát okoztak a kimenő üzenetekben, és jelentettük a Hacker One-on[^20].
  • DMARC és ARC fejlesztések: Kijavítottuk a DMARC és az ARC ellenőrzésével kapcsolatos problémákat, amelyek helytelen hitelesítési eredményekhez vezethetnek[^21][^22].
  • Teljesítményoptimalizálások: Hozzájárultunk olyan optimalizálásokhoz, amelyek javítják az e-mail hitelesítési folyamatok teljesítményét[^23][^24][^25][^26].

Ezek a fejlesztések biztosítják, hogy az e-mail-hitelesítés pontos és megbízható legyen, megvédve a felhasználókat az adathalász és a hamisító támadásoktól.

Főbb üzemidő-fejlesztések

Hozzájárulásunk az Upptime számára a következőket tartalmazza:

  • SSL-tanúsítvány-felügyelet: Funkciókat adtunk az SSL-tanúsítványok lejártának figyelésére, megelőzve a lejárt tanúsítványok miatti váratlan leállást[^27].
  • Több SMS-szám támogatása: Bevezettük a több csapattag SMS-ben történő riasztásának támogatását, ha incidensek fordulnak elő, így javítva a válaszidőket[^28].
  • IPv6-ellenőrzési javítások: Kijavítottuk az IPv6-kapcsolati ellenőrzésekkel kapcsolatos problémákat, így pontosabb felügyeletet biztosítottunk a modern hálózati környezetekben[^29].
  • Sötét/világos mód támogatása: Tématámogatást adtunk az állapotoldalak felhasználói élményének javítása érdekében[^31].
  • Jobb TCP-Ping támogatás: Továbbfejlesztettük a TCP ping funkcióját, hogy megbízhatóbb kapcsolattesztet biztosítsunk[^32].

Ezek a fejlesztések nemcsak a Forward Email állapotfigyelését szolgálják, hanem az Upptime felhasználók teljes közössége számára is elérhetők, bizonyítva elkötelezettségünket azon eszközök fejlesztése iránt, amelyektől függünk.

A ragasztó, amely mindent egyben tart: egyedi kód méretben

Noha npm-csomagjaink és a meglévő projektekhez való hozzájárulásaink jelentősek, az ezeket az összetevőket integráló egyedi kód mutatja meg igazán műszaki szakértelmünket. A Forward Email kódbázis egy évtizednyi fejlesztési erőfeszítést képvisel, 2017-ig nyúlik vissza, amikor a projekt elkezdődött. ingyenes e-mail továbbítás mielőtt monorepóba egyesül.

Hatalmas fejlesztési erőfeszítés

Ennek az egyéni integrációs kódnak a mérete lenyűgöző:

  • Összes hozzájárulás: Több mint 3217 commit
  • Kódbázis mérete: Több mint 421 545 kódsor JavaScript-, Pug-, CSS- és JSON-fájlok között[^33]

Ez több ezer óra fejlesztési munkát, hibakeresési munkameneteket és teljesítményoptimalizálást jelent. Ez a „titkos szósz”, amely az egyes csomagokat egy összefüggő, megbízható szolgáltatássá alakítja, amelyet naponta több ezer vásárló vesz igénybe.

Alapvető függőségek integrációja

A Forward Email kódbázis számos függőséget integrál egy zökkenőmentes egésszé:

  • E-mail feldolgozás: Integrálja a Nodemailert a küldéshez, az SMTP szervert a fogadáshoz és a Mailparsert az elemzéshez
  • Hitelesítés: Mailauth-ot használ a DKIM, SPF, DMARC és ARC ellenőrzéshez
  • DNS felbontás: A Tangerine-t a DNS-over-HTTPS-hez használja globális gyorsítótárazással
  • MX kapcsolat: Az mx-connect Tangerine integrációt használja a megbízható levelezőszerver-kapcsolatok érdekében
  • Munkaütemezés: Bree-t alkalmazza a háttérfeladatok megbízható feldolgozásához dolgozói szálakkal
  • Sablonozás: E-mail-sablonokat használ a webhely stíluslapjainak újrafelhasználásához az ügyfelekkel való kommunikációban
  • E-mail tárolás: Egyedi titkosítású SQLite postafiókokat valósít meg jobb sqlite3-multiple-rejtjelekkel ChaCha20-Poly1305 titkosítással a kvantumbiztonságos adatvédelem érdekében, biztosítva a felhasználók közötti teljes elszigeteltséget és azt, hogy csak a felhasználó férhessen hozzá a postafiókjához

Ezen integrációk mindegyike megköveteli a szélsőséges esetek, a teljesítményvonzatok és a biztonsági szempontok alapos mérlegelését. Az eredmény egy robusztus rendszer, amely több millió e-mail tranzakciót kezel megbízhatóan. Az SQLite implementációnk az msgpackr-t is felhasználja a hatékony bináris szerializáláshoz, a WebSockets-et (ws-n keresztül) pedig a valós idejű állapotfrissítésekhez infrastruktúránkban.

DNS infrastruktúra Tangerine és mx-connect segítségével

A Forward Email infrastruktúrájának kritikus eleme a DNS-feloldó rendszerünk, amely két kulcsfontosságú csomagra épül:

  • Mandarin: A Node.js DNS-over-HTTPS megvalósításunk a szabványos DNS-feloldó beugró helyettesítését biztosítja, beépített újrapróbálkozásokkal, időtúllépésekkel, intelligens szerverforgatással és gyorsítótárazási támogatással.

  • mx-connect: Ez a csomag TCP-kapcsolatokat hoz létre az MX szerverekkel, céltartományt vagy e-mail címet vesz fel, feloldja a megfelelő MX szervereket, és prioritási sorrendben csatlakozik hozzájuk.

Integráltuk a Tangerine-t az mx-connect segítségével 4. lehívási kérés, biztosítva az alkalmazásszintű DNS HTTP-kéréseket az e-mailek továbbítása során. Ez globális gyorsítótárat biztosít a DNS számára, 1:1 konzisztenciával bármely régióban, alkalmazásban vagy folyamatban – ez kritikus fontosságú a megbízható e-mailek kézbesítéséhez egy elosztott rendszerben.

Vállalati hatás: a nyílt forráskódtól a küldetéskritikus megoldásokig

Az évtizedes nyílt forráskódú fejlesztési utunk csúcspontja lehetővé tette, hogy a Forward Email ne csak az egyéni fejlesztőket szolgálja ki, hanem a nagyvállalatokat és az oktatási intézményeket is, amelyek magának a nyílt forráskódú mozgalomnak a gerincét képezik.

Esettanulmányok a küldetéskritikus e-mail infrastruktúrában

A megbízhatóság, az adatvédelem és a nyílt forráskódú alapelvek iránti elkötelezettségünk miatt a Forward Email a megbízható választás a szigorú e-mail-követelményekkel rendelkező szervezetek számára:

  • Oktatási intézmények: Ahogy részletezzük a mi öregdiák e-mail továbbítás esettanulmány, a nagyobb egyetemek infrastruktúránkra támaszkodnak, hogy megbízható e-mail-továbbítási szolgáltatásokon keresztül élethosszig tartó kapcsolatokat tartsanak fenn öregdiákok százezreivel.

  • Vállalati Linux megoldások: A Kanonikus Ubuntu e-mail vállalati esettanulmány bemutatja, hogy nyílt forráskódú megközelítésünk hogyan illeszkedik tökéletesen a vállalati Linux-szolgáltatók igényeihez, és biztosítja számukra a szükséges átláthatóságot és felügyeletet.

  • Nyílt forráskódú alapítványok: Talán a leghitelesebb a Linux Alapítvánnyal kötött partnerségünk, amint azt a Linux Foundation e-mail vállalati esettanulmány, ahol szolgáltatásunk a kommunikációt a Linux fejlesztést irányító szervezet számára biztosítja.

Gyönyörű szimmetria van abban, ahogy a sok éven át gondosan karbantartott nyílt forráskódú csomagjaink lehetővé tették számunkra, hogy olyan e-mail szolgáltatást hozzunk létre, amely most éppen azokat a közösségeket és szervezeteket támogatja, amelyek a nyílt forráskódú szoftverekért küzdenek. Ez a teljes kört átfogó utazás – az egyedi csomagok hozzájárulásától a vállalati szintű e-mail infrastruktúra működtetéséig a nyílt forráskódú vezetők számára – a szoftverfejlesztési megközelítésünk végső érvényesítését jelenti.

Nyílt forráskód egy évtizede: Várakozás

Ahogy visszatekintünk egy évtizednyi nyílt forráskódú hozzájárulásra, és előretekintünk a következő tíz évre, tele vagyunk hálával a közösségért, amely támogatta a munkánkat, és izgalommal várjuk az elkövetkezőket.

Figyelemreméltó volt az utunk a csomagok egyéni közreműködőitől a nagyvállalatok és nyílt forráskódú alapítványok által használt átfogó e-mail infrastruktúra fenntartóiig. Ez bizonyítja a nyílt forráskódú fejlesztés erejét és azt, hogy az átgondolt, jól karbantartott szoftver milyen hatással lehet a szélesebb ökoszisztémára.

Az elkövetkező években elkötelezettek vagyunk a következők mellett:

  • Folytatjuk meglévő csomagjaink karbantartását és fejlesztését, biztosítva, hogy megbízható eszközök maradjanak a fejlesztők számára világszerte.
  • A kritikus infrastrukturális projektekhez való hozzájárulásunk bővítése, különösen az e-mail és a biztonság területén.
  • Az e-mail-továbbítás képességeinek fejlesztése miközben fenntartjuk az adatvédelem, a biztonság és az átláthatóság iránti elkötelezettségünket.
  • A nyílt forráskódú közreműködők következő generációjának támogatása mentoráláson, szponzoráláson és közösségi szerepvállaláson keresztül.

Hiszünk abban, hogy a szoftverfejlesztés jövője nyitott, együttműködésen alapuló, és a bizalom alapjain alapul. Reméljük, hogy továbbra is kiváló minőségű, biztonságra összpontosító csomagokkal járulunk hozzá a JavaScript ökoszisztémához, reméljük, hogy kis szerepet játszhatunk ennek a jövőnek a felépítésében.

Köszönjük mindenkinek, aki igénybe vette csomagjainkat, hozzájárult projektjeinkhez, problémákat jelentett, vagy egyszerűen csak hírt terjesztett munkánkról. Az Ön támogatása lehetővé tette ezt az évtizedes hatást, és izgatottan várjuk, hogy mit érhetünk el együtt a következő tíz évben.

[^1]: npm-statisztikák letöltése a kabinhoz, 2025. április [^2]: npm letöltési statisztikák a bson-objectidhez, 2025. február-március [^3]: npm letöltési statisztikák az url-regex-safe-hez, 2025. április [^4]: GitHub csillagok száma a forwardemail/forwardemail.net esetében 2025 áprilisától [^5]: npm letöltési statisztikák az előnézeti e-mailhez, 2025. április [^7]: npm letöltési statisztikák a szuperügynökhöz, 2025. február-március [^8]: npm letöltési statisztikák a szuperteszthez, 2025. február-március [^9]: npm letöltési statisztikák az előzetes e-mailhez, 2025. február-március [^10]: npm-statisztikák letöltése a kabinhoz, 2025. február-március [^11]: npm letöltési statisztikák az url-regex-safe-hez, 2025. február-március [^12]: npm letöltési statisztikák a spamszkennerhez, 2025. február-március [^13]: Napi letöltési minták az npm statisztikákból, 2025. április [^14]: Heti letöltési minták az npm statisztikákból, 2025. április [^15]: npm letöltési statisztikák a nodemailerhez, 2025. április [^16]: https://github.com/nodemailer/smtp-server/issues/155 [^17]: https://github.com/nodemailer/smtp-server/issues/node-v12-requires-tls-min [^18]: https://github.com/nodemailer/mailparser/issues/261 [^19]: https://github.com/nodemailer/nodemailer/issues/1102 [^20]: https://github.com/postalsys/mailauth/issues/30 [^21]: https://github.com/postalsys/mailauth/issues/58 [^22]: https://github.com/postalsys/mailauth/issues/48 [^23]: https://github.com/postalsys/mailauth/issues/74 [^24]: https://github.com/postalsys/mailauth/issues/75 [^25]: https://github.com/postalsys/mailauth/issues/60 [^26]: https://github.com/postalsys/mailauth/issues/73 [^27]: Az Upptime adattárban lévő GitHub-problémák alapján [^28]: Az Upptime adattárban lévő GitHub-problémák alapján [^29]: Az Upptime adattárban lévő GitHub-problémák alapján [^30]: npm letöltési statisztikák a bree-hez, 2025. február-március [^31]: A GitHub lekérései alapján az Upptime felé [^32]: A GitHub Upptime felé irányuló lekérései alapján [^34]: npm statisztikák letöltése a koa-hoz, 2025. február-március [^35]: npm letöltési statisztikák a @koa/routerhez, 2025. február-március [^36]: npm letöltési statisztikák a koa-routerhez, 2025. február-március [^37]: npm letöltési statisztikák az url-regexhez, 2025. február-március [^38]: npm letöltési statisztikák @breejs/később, 2025. február-március [^39]: npm letöltési statisztika e-mail-sablonokhoz, 2025. február-március [^40]: npm letöltési statisztika a get-pathokhoz, 2025. február-március [^41]: dotenv-parse-variables npm letöltési statisztikái, 2025. február-március [^42]: npm letöltési statisztikák @koa/multer, 2025. február-március