Yandex Funktiounen schécken Mail

Yandex Funktiounen schécken Mail

Haut wäerte mir de sougenannte schafen. Yandex Funktioun (offiziellen Numm Yandex Cloud Funktiounen), déi mam Mailing Service zesummegeklappt huet SendGrid wäert "Seef" u friddlech schlofen Benotzer schécken (just Geck - ech weess datt mir all géint Spam sinn).

Ech sinn och e Géigner (awer ouni Fanatismus) vun traditionell Serveren, an engem Supporter vun der sougenannten. Servere sinn (Serverlos) Léisungen, well ech net gär (an ech weess net wierklech wéi) Serveren verwalten, an nach méi bezuelen fir d'Zäit wou se net gelueden sinn. Eng aner Saach ass Funktiounen. Een servéiert hinnen ouni mech, an ech bezuelen nëmme fir Uriff. Ufank Oktober 2019 huet Yandex seng Yandex Cloud Funktiounen - schéngt déi éischt an der russescher Federatioun ze sinn Servere sinn. A wat besonnesch flott ass, ass datt fir d'Alice seng Fäegkeeten se allgemeng gratis sinn, sou datt se zënterhier a menger Peripherievisioun sinn. Mee loosse mer schonn ufänken.

Loosst eis dëst Szenario virstellen. Är Applikatioun (zum Beispill, dem Alice seng Fäegkeet Erënneren a vergiessen déi iwwregens och fonctionnéiert Yandex Funktiounen) invitéiert de Benotzer en digitale Produkt ze kafen, zum Beispill zousätzlech Optiounen, an de Benotzer mécht eng Bezuelung. Eng Aart vu Bezuelungssystem (konfus ähnlech wéi Yandex.Money) veraarbecht d'Bezuelung a schéckt se op d'Adress déi Dir uginn hutt (a mir hunn e Link fir ze ruffen Yandex Funktiounen) HTTP- eng Ufro mat Bezuelungsdetailer, wéi Betrag, vollen Numm, Telefonsnummer an E-Mail vum Bezueler. Mir wëllen dës Donnéeën op iergendeng Manéier veraarbechten, zum Beispill: de Betrag iwwerpréiwen, entspriechend Entréen an der Datebank maachen, un d'Benotzer schécken SMS и Email mat Bestätegung vun Empfang vun Bezuelen a weider Uweisungen. Also selwer microservice.

Iwwert wéi aus Yandex Funktiounen maachen Entréen an der Datebank Cloud Firestore mir hunn et schonn am Tutorial gekuckt Alice erënnert alles (an an Zukunft, mengen ech, wäerte mir e Beispill fir eng aner Datebank betruechten - Yandex Datebank). Iwwer wéi d'Benotzer ze schécken SMS an intégréieren eis Applikatioun mat Yandex.Money - mir sortéieren et an der nächster Zukunft. Loosst eis elo just mat Bréiwer schécken.

1. Schafen e Kont an SendGrid

RemarqueSendGrid ass just mäi Choix, deen ech aus verschiddene Grënn gemaach hunn, den Haaptgrond ass datt se e fäerdege SDK fir Node.js hunn. Dir kënnt all aner Mailing Service wielen.

Loosst eis weidergoen op d'Kontoregistrierungssäit a fëllt do den Aschreiwungsformular aus. Da gi mir op bäi, an der Navigatiounspanel wielt Email API -> Integratioun Guide, an op der Haaptrei Panel - WebAPI an нажимаем кнопку wielt. Alles ass wéi op der Foto:

Yandex Funktiounen schécken Mail

Am nächste Schrëtt wielt mir Node.js:

Yandex Funktiounen schécken Mail

Nächst komme mir mat fir eis API-Schlëssel Numm (gëtt nëmmen an der Konsole an der Lëscht vun de Schlësselen ugewisen, an huet näischt mat eisem zukünftege Code ze dinn; Ech sinn just mat engem onvergiesslechen erauskomm Demo-API-Schlëssel) an dréckt op de Knäppchen Schafen Schlëssel:

Yandex Funktiounen schécken Mail

De Schlëssel gëtt generéiert, mir kopéieren et an halen et am déifste Vertrauen. A mir wäerten en Écran mat engem Knäppchen hunn Verifizéiert Integratioun, wéi am Bild hei drënner, awer mir wäerten et nach net klickt, awer loosst eis weidergoen fir de Code ze schreiwen:

Yandex Funktiounen schécken Mail

2. Schreiwen Code

Awer de Code selwer, wéi Dir gesitt, ass lächerlech kleng - 22 Linnen!

Yandex Funktiounen schécken Mail

An der Schlaang #8 Meng E-Mail ass hardcoded (an dofir schei verstoppt) - gitt w.e.g. Är. Am richtege Liewen kréie mir all d'Donnéeën (inklusiv Email) vum Objet Héichwaasser. Zum Beispill, wann d'Method POST en Objet gëtt un eis Funktioun geschéckt Benotzersäit mat Feld (Eegeschaft) Email, de Wäert vun dësem Feld kann esou kritt ginn:

const { user } = event;
const email = user.email;

A wann d'E-Mailadress mat der Method un d'Funktioun weidergeleet gëtt GET, zum Beispill: https://functions.yandexcloud.net/123abc?[email protected]
Parameter Wäert Email Dir kënnt et esou kréien:

const email = event.queryStringParameters.email;

Fir e Bléck op wat genau an engem Objet enthält Héichwaasser, Dir kënnt am einfachsten schafen Yandex Funktioun a verdreift et mat Ufroen:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Dëst gëtt méi detailléiert (awer manner kloer) an der offizieller Dokumentatioun diskutéiert hei.

Also, erstellt e Projetsverzeechnes (zum Beispill, mailers), gitt derbäi, initialiséiert de Projet, installéiert Ofhängegkeeten:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Hei ass nëmmen de Package néideg @sendgrid/mail. Plastikstut E-Mail-validator kontrolléiert d'E-Mailadress op d'Gëltegkeet (wéi hunn ech net direkt virgestallt?), awer wa mir sécher sinn (et ass scho laang ouni eis iwwerpréift), musse mir se net installéieren (an, vun natierlech, mir mussen et net am Code kontrolléieren). Plastikstut dotenv entworf fir records aus enger Datei ze liesen .NS als Runtime Variablen. Awer an Yandex Funktiounen Et ass méiglech dës Variabelen direkt an d'Runtime Ëmfeld ze placéieren. Wéi? - Ech weisen et hei ënnen. Dofir de Package dotenv Dir kënnt et och net installéieren, an d'Datei .NS - net erstellen, a gläichzäiteg ass de Code an der Datei index.js änneren net. Awer hei hu mir dëse Package installéiert, also erstellen mir Dateien index.js и .NS:

touch index.js
touch .env

Am Dossier index.js schreiwen 22 Zeilen vum Code am Screenshot uewen gewisen (nëmmen an der Linn #8 änneren Är E-Mail), an an der Datei .NS - (ouni Zitater oder Punktuatioun) spezifizéiert de Pair - Schlëssel Numm / Wäert APIdéi mir viru kuerzem an der Konsol krut SendGrid:
SENDGRID_API_KEY=Äre-ganz-geheime-sendgrid-api-Schlëssel

A wann Dir manner Aarbecht wëllt, klon de Repository an installéiert d'Packagen:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

Am Dossier index.js, an der Schlaang #8 änneren Email; eng Datei am Root-Verzeichnis erstellen .NS, an an et den Numm / Wäert vun de Schlëssel uginn API, wéi just uewen gewisen.

3. Deploy

Méi oder manner kloer an am Detail iwwer Yandex.Cloud a wéi een et do placéiert Yandex Funktiounen a mengem Artikel beschriwwen Alice am Land vun Bitrix - Ech schécken déi Ignoréieren an dëst Land, a fir all déi aner (an déi, déi zréckkoum) - dann eng kleng BD (d.h. eng Serie vu Biller an Text).

Schafen Hoodie-archiv (loosst eis et nennen, zum Beispill, mailer.zip), an deem mir de Verzeechnes enthalen Node_moduler an Dateien .env, index.js - alles aus eisem Projet Katalog:

Yandex Funktiounen schécken Mail

Mir kreéieren eng Funktioun mam Numm ... richteg - mailers, am lénksen Navigatiounsmenü gitt mir De Redaktor, fëllt déi erfuerderlech Felder aus a wiesselt op d'Tab ZIP Archiv download eisen Archiv mailer.zip:

Yandex Funktiounen schécken Mail

An hei ass déi virdru genannte Optioun fir erofzelueden API Schlëssel direkt hei, anstatt e Fichier am Projet ze schafen .NS, an installéiert de Package net dotenv. Awer mir hunn dëst alles scho gemaach, also weisen ech et just fir Informatioun. Dat ass, et ass net néideg ze duplizéieren!

Yandex Funktiounen schécken Mail

Elo an der oberer rechter Ecke klickt op de Knäppchen Versioun erstellen, a waart e puer Sekonnen. Wann alles fäerdeg ass, gi mir automatesch an d'Sektioun Iwwersiicht. Do wäerte mir d'Optioun aktivéieren Ëffentlech Funktiounsou datt Dir mat der Äussewelt interagéiere kënnt.

Yandex Funktiounen schécken Mail

Dir gesitt de bloe Link vis-à-vis vun der Inscriptioun Uruff Link? Klickt et. Eng eidel Browserfenster geet op... Mee waart - ech krut eng E-Mail:

Yandex Funktiounen schécken Mail

Elo kënnt Dir zréck op d'Konsole SendGrid, an dréckt op de Knäppchen Verifizéiert Integratioun. De System wäert alles iwwer seng Kanäl iwwerpréiwen, an als Resultat sollt et en Ecran wéi dëst zréckginn:

Yandex Funktiounen schécken Mail

Dat ass et, Kärelen (a Meedercher, natierlech) - alles ass wierklech ganz einfach an elegant! Et wäert méi Artikelen ginn. Wann iergendeen interesséiert ass eppes wéi dëst ze liesen, abonnéiert Iech fir datt Dir net verpasst.

4. Spenden

Yandex Funktiounen schécken Mail

Source: will.com

Setzt e Commentaire