ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื”ื™ื•ื ื ื™ืฆื•ืจ ืืช ืžื” ืฉื ืงืจื. ืคื•ื ืงืฆื™ื™ืช Yandex (ืฉื ืจืฉืžื™ ืคื•ื ืงืฆื™ื•ืช ืขื ืŸ ืฉืœ Yandex), ืฉืฉื™ืชืฃ ืคืขื•ืœื” ืขื ืฉื™ืจื•ืช ื”ื“ื™ื•ื•ืจ SendGrid ื™ืฉืœื— "ืกื‘ื•ืŸ" ืœืžืฉืชืžืฉื™ื ืฉื™ืฉื ื™ื ื‘ืฉืœื•ื•ื” (ืจืง ื‘ืฆื—ื•ืง - ืื ื™ ื™ื•ื“ืข ืฉื›ื•ืœื ื• ื ื’ื“ ื“ื•ืืจ ื–ื‘ืœ).

ืื ื™ ื’ื ืžืชื ื’ื“ (ืื‘ืœ ื‘ืœื™ ืงื ืื•ืช) ืฉืœ ืฉืจืชื™ื ืžืกื•ืจืชื™ื™ื, ื•ืชื•ืžืš ื‘ืžื” ืฉื ืงืจื. ืœืœื ืฉืจืช ืคืชืจื•ื ื•ืช (ืœืœื ืฉืจืช), ื›ื™ ืื ื™ ืœื ืื•ื”ื‘ (ื•ืื ื™ ืœื ืžืžืฉ ื™ื•ื“ืข ืื™ืš) ืœื ื”ืœ ืฉืจืชื™ื, ื•ืขื•ื“ ื™ื•ืชืจ ืžื–ื”, ืžืฉืœื ืขืœ ื”ื–ืžืŸ ืฉื”ื ืœื ื ื˜ืขื ื™ื. ื“ื‘ืจ ื ื•ืกืฃ ื”ื•ื ืคื•ื ืงืฆื™ื•ืช. ืžื™ืฉื”ื• ื ื•ืชืŸ ืœื”ื ืฉื™ืจื•ืช ื‘ืœืขื“ื™ื™, ื•ืื ื™ ืžืฉืœื ืจืง ืขืœ ืฉื™ื—ื•ืช. ื‘ืชื—ื™ืœืช ืื•ืงื˜ื•ื‘ืจ 2019 ื”ืฆื™ื’ื” Yandex ืืช ืฉืœื” ืคื•ื ืงืฆื™ื•ืช ืขื ืŸ ืฉืœ Yandex - ื ืจืื” ืฉื”ื•ื ื”ืจืืฉื•ืŸ ื‘ืคื“ืจืฆื™ื” ื”ืจื•ืกื™ืช ืœืœื ืฉืจืช. ื•ืžื” ืฉื ื—ืžื“ ื‘ืžื™ื•ื—ื“ ื”ื•ื ืฉืœื›ื™ืฉื•ืจื™ื” ืฉืœ ืืœื™ืก ื”ื ื‘ื“ืจืš ื›ืœืœ ื—ื•ืคืฉื™ื™ื, ืื– ื”ื ื ืžืฆืื™ื ื‘ืจืื™ื™ื” ื”ื”ื™ืงืคื™ืช ืฉืœื™ ืžืื–. ืื‘ืœ ื‘ื•ืื• ื ืชื—ื™ืœ ื›ื‘ืจ.

ื‘ื•ืื• ื ื“ืžื™ื™ืŸ ืืช ื”ืชืจื—ื™ืฉ ื”ื–ื”. ื”ื™ื™ืฉื•ื ืฉืœืš (ืœื“ื•ื’ืžื”, ื”ืžื™ื•ืžื ื•ืช ืฉืœ ืืœื™ืก ื–ื›ื•ืจ ื•ืฉื›ื— ืฉืื’ื‘, ื’ื ืขื•ื‘ื“ ืขืœื™ื• ืคื•ื ืงืฆื™ื•ืช Yandex) ืžื–ืžื™ืŸ ืืช ื”ืžืฉืชืžืฉ ืœืงื ื•ืช ืžื•ืฆืจ ื“ื™ื’ื™ื˜ืœื™, ืœืžืฉืœ, ืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช, ื•ื”ืžืฉืชืžืฉ ืžื‘ืฆืข ืชืฉืœื•ื. ืื™ื–ื•ืฉื”ื™ ืžืขืจื›ืช ืชืฉืœื•ื (ื“ื•ืžื” ื‘ืื•ืคืŸ ืžื‘ืœื‘ืœ ืœ Yandex.Money) ืžืขื‘ื“ ืืช ื”ืชืฉืœื•ื ื•ืฉื•ืœื— ืื•ืชื• ืœื›ืชื•ื‘ืช ืฉืืชื” ืžืกืคืง (ื•ื™ื”ื™ื” ืœื ื• ืงื™ืฉื•ืจ ืœื”ืชืงืฉืจื•ืช ืคื•ื ืงืฆื™ื•ืช Yandex) HTTP- ื‘ืงืฉื” ื”ืžื›ื™ืœื” ืคืจื˜ื™ ืชืฉืœื•ื, ื›ื’ื•ืŸ ืกื›ื•ื, ืฉื ืžืœื, ืžืกืคืจ ื˜ืœืคื•ืŸ ื•ืื™ืžื™ื™ืœ ืฉืœ ื”ืžืฉืœื. ืื ื—ื ื• ืจื•ืฆื™ื ืœืขื‘ื“ ืืช ื”ื ืชื•ื ื™ื ื”ืืœื” ื‘ื“ืจืš ื›ืœืฉื”ื™, ืœืžืฉืœ: ืœื‘ื“ื•ืง ืืช ื”ืกื›ื•ื, ืœื‘ืฆืข ืขืจื›ื™ื ืžืชืื™ืžื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ืœืฉืœื•ื— ืœืžืฉืชืžืฉื™ื SMS ะธ ื›ืชื•ื‘ืช ืื™ืžื™ื™ืœ ืขื ืื™ืฉื•ืจ ืขืœ ืงื‘ืœืช ื”ืชืฉืœื•ื ื•ื”ื ื—ื™ื•ืช ื ื•ืกืคื•ืช. ืื– ืืช ืขืฆืžืš ืฉื™ืจื•ืช ืžื™ืงืจื•.

ืขืœ ืื™ืš ืž ืคื•ื ืงืฆื™ื•ืช Yandex ืœื‘ืฆืข ืขืจื›ื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืขื ืŸ Firestore ื›ื‘ืจ ื”ืกืชื›ืœื ื• ืขืœ ื–ื” ื‘ืžื“ืจื™ืš ืืœื™ืก ื–ื•ื›ืจืช ื”ื›ืœ (ื•ื‘ืขืชื™ื“, ืื ื™ ื—ื•ืฉื‘, ื ืฉืงื•ืœ ื“ื•ื’ืžื” ืœืžืกื“ ื ืชื•ื ื™ื ืื—ืจ - ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ Yandex). ืขืœ ืื™ืš ืœืฉืœื•ื— ืœืžืฉืชืžืฉื™ื SMS ื•ืœืฉืœื‘ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืขื Yandex.Money - ื ืกื“ืจ ืืช ื–ื” ื‘ืขืชื™ื“ ื”ืงืจื•ื‘. ืขื›ืฉื™ื• ื‘ื•ืื• ืจืง ื ืชืžื•ื“ื“ ืขื ืฉืœื™ื—ืช ืžื›ืชื‘ื™ื.

1. ืฆื•ืจ ื—ืฉื‘ื•ืŸ ื‘- SendGrid

ืฉื™ื ืœื‘SendGrid ื”ื™ื ืจืง ื”ื‘ื—ื™ืจื” ืฉืœื™, ืฉืขืฉื™ืชื™ ืžื›ืžื” ืกื™ื‘ื•ืช, ื•ื”ืขื™ืงืจื™ืช ื”ื™ื ืฉื™ืฉ ืœื”ื SDK ืžื•ื›ืŸ ืขื‘ื•ืจ Node.js. ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ื›ืœ ืฉื™ืจื•ืช ื“ื™ื•ื•ืจ ืื—ืจ.

ื‘ื•ื ื ืžืฉื™ืš ื”ืœืื” ืœื“ืฃ ืจื™ืฉื•ื ื”ื—ืฉื‘ื•ืŸ ื•ืžืœื ืืช ื˜ื•ืคืก ื”ื”ืจืฉืžื” ืฉื. ื•ืื– ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœ ืœื•ื— ื ื™ื”ื•ืœ ื—ืฉื‘ื•ืŸ, ื‘ื—ืœื•ื ื™ืช ื”ื ื™ื•ื•ื˜ ื‘ื—ืจ API ืฉืœ ืื™ืžื™ื™ืœ -> ืžื“ืจื™ืš ืื™ื ื˜ื’ืจืฆื™ื”, ื•ื‘ืคืื ืœ ื”ืจืืฉื™ - ืžืžืฉืง API ื•ืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจ ื‘ื—ืจื•. ื”ื›ืœ ื›ืžื• ื‘ืชืžื•ื ื”:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื‘ืฉืœื‘ ื”ื‘ื ืื ื• ื‘ื•ื—ืจื™ื Node.js:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื”ื‘ื ืื ื—ื ื• ืžื’ื™ืขื™ื ืขื ืขื‘ื•ืจ ืฉืœื ื• APIืฉื ื”ืžืคืชื— (ื™ื•ืฆื’ ืจืง ื‘ืงื•ื ืกื•ืœื” ื‘ืจืฉื™ืžืช ื”ืžืคืชื—ื•ืช, ื•ืื™ืŸ ืœื• ืฉื•ื ืงืฉืจ ืœืงื•ื“ ื”ืขืชื™ื“ื™ ืฉืœื ื•; ื”ืจื’ืข ื”ื’ืขืชื™ ืœืงื•ื“ ื‘ืœืชื™ ืžืชื›ืœื” ื”ื“ื’ืžื”-API-key) ื•ืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจ ืฆื•ืจ ืžืคืชื—:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื”ืžืคืชื— ื™ื™ื•ื•ืฆืจ, ื ืขืชื™ืง ืื•ืชื• ื•ื ืฉืžื•ืจ ืขืœื™ื• ื‘ื‘ื™ื˜ื—ื•ืŸ ื”ืขืžื•ืง ื‘ื™ื•ืชืจ. ื•ื™ื”ื™ื” ืœื ื• ืžืกืš ืขื ื›ืคืชื•ืจ ืืžืช ืื™ื ื˜ื’ืจืฆื™ื”, ื›ืžื• ื‘ืชืžื•ื ื” ืœืžื˜ื”, ืื‘ืœ ืขื“ื™ื™ืŸ ืœื ื ืœื—ืฅ ืขืœื™ื”, ืื‘ืœ ื‘ื•ืื• ื ืขื‘ื•ืจ ืœื›ืชื™ื‘ืช ื”ืงื•ื“:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

2. ื›ืชื™ื‘ืช ืงื•ื“

ืื‘ืœ ื”ืงื•ื“ ืขืฆืžื•, ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืงื˜ืŸ ืขื“ ื›ื“ื™ ื’ื™ื—ื•ืš - 22 ืฉื•ืจื•ืช!

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื‘ืฉื•ืจื” #8 ื”ืžื™ื™ืœ ืฉืœื™ ืžืงื•ื“ื“ ืงืฉื” (ื•ืœื›ืŸ ืžื•ืกืชืจ ื‘ื‘ื™ื™ืฉื ื•ืช) - ื ื ืœืฆื™ื™ืŸ ืืช ืฉืœืš. ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื, ื ืงื‘ืœ ืืช ื›ืœ ื”ื ืชื•ื ื™ื (ื›ื•ืœืœ ืืžื™ื™ืœ) ืžืื•ื‘ื™ื™ืงื˜ ืื™ืจื•ืข. ืœืžืฉืœ, ืื ื”ืฉื™ื˜ื” POST ืื•ื‘ื™ื™ืงื˜ ื ืฉืœื— ืœืคื•ื ืงืฆื™ื” ืฉืœื ื• ื”ืžืฉืชืžืฉ ืขื ืฉื“ื” (ื ื›ืก) ืืžื™ื™ืœ, ื ื™ืชืŸ ืœืงื‘ืœ ืืช ื”ืขืจืš ืฉืœ ืฉื“ื” ื–ื” ื›ืš:

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

ื•ืื ื›ืชื•ื‘ืช ื”ืžื™ื™ืœ ืžื•ืขื‘ืจืช ืœืคื•ื ืงืฆื™ื” ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื” ืœืงื‘ืœ, ืœื“ื•ื’ืžื”: https://functions.yandexcloud.net/123abc?[email protected]
ืขืจืš ืคืจืžื˜ืจ ืืžื™ื™ืœ ืืชื” ื™ื›ื•ืœ ืœื”ืฉื™ื’ ืืช ื–ื” ื›ื›ื”:

const email = event.queryStringParameters.email;

ื›ื“ื™ ืœื”ืกืชื›ืœ ืžื” ื‘ื“ื™ื•ืง ื›ืœื•ืœ ื‘ื—ืคืฅ ืื™ืจื•ืข, ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืืช ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ ืคื•ื ืงืฆื™ื™ืช Yandex ื•ืกื•ื‘ื‘ ืืช ื–ื” ืขื ืฉืื™ืœืชื•ืช:

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

ื–ื” ื ื“ื•ืŸ ื‘ื™ืชืจ ืคื™ืจื•ื˜ (ืืš ืคื—ื•ืช ื‘ืจื•ืจ) ื‘ืชื™ืขื•ื“ ื”ืจืฉืžื™ ื›ืืŸ.

ืื–, ืฆื•ืจ ืกืคืจื™ื™ืช ืคืจื•ื™ืงื˜ (ืœื“ื•ื’ืžื”, ื“ื•ืืจ), ืขื‘ื•ืจ ืืœื™ื•, ืืชื—ืœ ืืช ื”ืคืจื•ื™ืงื˜, ื”ืชืงืŸ ืชืœื•ืช:

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

ื›ืืŸ ื ื“ืจืฉืช ืจืง ื”ื—ื‘ื™ืœื” @sendgrid/mail. ืฉืงื™ืช ืคืœืกื˜ื™ืง ืžืืžืช ืื™ืžื™ื™ืœ ื‘ื•ื“ืง ืืช ืชืงืคื•ืช ื›ืชื•ื‘ืช ื”ืžื™ื™ืœ (ืื™ืš ืœื ื ื™ื—ืฉืชื™ ืžื™ื“?), ืื‘ืœ ืื ืื ื—ื ื• ื‘ื˜ื•ื—ื™ื ื‘ื–ื” (ื–ื” ื›ื‘ืจ ื ื‘ื“ืง ื›ื‘ืจ ื”ืจื‘ื” ื–ืžืŸ ื‘ืœืขื“ื™ื ื•), ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื”ืชืงื™ืŸ ืืช ื–ื” (ื•ืฉืœ ื›ืžื•ื‘ืŸ, ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื‘ื“ื•ืง ืืช ื–ื” ื‘ืงื•ื“). ืฉืงื™ืช ืคืœืกื˜ื™ืง dotenv ื ื•ืขื“ ืœืงืจื•ื ืจืฉื•ืžื•ืช ืžืงื•ื‘ืฅ .v ื›ืžืฉืชื ื™ ื–ืžืŸ ืจื™ืฆื”. ืื‘ืœ ื‘ ืคื•ื ืงืฆื™ื•ืช Yandex ืืคืฉืจ ืœืžืงื ืืช ื”ืžืฉืชื ื™ื ื”ืœืœื• ื™ืฉื™ืจื•ืช ื‘ืกื‘ื™ื‘ืช ื–ืžืŸ ื”ืจื™ืฆื”. ืึตื™ืš? - ืื ื™ ืืจืื” ืืช ื–ื” ืœืžื˜ื”. ืœื›ืŸ ื”ื—ื‘ื™ืœื” dotenv ืืชื” ื’ื ืœื ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืืช ื–ื” ื•ืืช ื”ืงื•ื‘ืฅ .v - ืœื ืœื™ืฆื•ืจ, ื•ื‘ืžืงื‘ื™ืœ ื”ืงื•ื“ ื ืžืฆื ื‘ืงื•ื‘ืฅ index.js ืืœ ืชืฉืชื ื”. ืื‘ืœ ื›ืืŸ ื”ืชืงื ื• ืืช ื”ื—ื‘ื™ืœื” ื”ื–ื•, ืื– ืื ื—ื ื• ื™ื•ืฆืจื™ื ืงื‘ืฆื™ื index.js ะธ .v:

touch index.js
touch .env

ื‘ืงื•ื‘ืฅ index.js ื›ืชื•ื‘ 22 ืฉื•ืจื•ืช ืงื•ื“ ื”ืžื•ืฆื’ื•ืช ื‘ืฆื™ืœื•ื ื”ืžืกืš ืœืžืขืœื” (ืจืง ื‘ืฉื•ืจื” #8 ืฉื ื” ืืช ื”ืื™ืžื™ื™ืœ ืฉืœืš), ื•ื‘ืงื•ื‘ืฅ .v - (ืœืœื ื›ืœ ืžื™ืจื›ืื•ืช ืื• ืกื™ืžื ื™ ืคื™ืกื•ืง) ืฆื™ื™ืŸ ืืช ื”ื–ื•ื’ - ืฉื/ืขืจืš ืžืคืชื— APIืฉืงื™ื‘ืœื ื• ืœืื—ืจื•ื ื” ื‘ืงื•ื ืกื•ืœื” SendGrid:
SENDGRID_API_KEY=ื”ืžืคืชื—-ื”ืžืื•ื“-ืกื•ื“ื™-sendgrid-api-ืฉืœืš

ื•ืื ืืชื” ืจื•ืฆื” ืคื—ื•ืช ืขื‘ื•ื“ื”, ืฉื™ื‘ื˜ ืืช ื”ืžืื’ืจ ื•ื”ืชืงืŸ ืืช ื”ื—ื‘ื™ืœื•ืช:

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

ื‘ืงื•ื‘ืฅ index.js, ื‘ืฉื•ืจื” #8 ืฉื ื” ื›ืชื•ื‘ืช ืื™ืžื™ื™ืœ; ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ื‘ืกืคืจื™ื™ืช ื”ืฉื•ืจืฉ .v, ื•ื‘ื• ืฆื™ื™ื ื• ืืช ื”ืฉื/ืขืจืš ืฉืœ ื”ืžืคืชื— API, ื›ืคื™ ืฉืžื•ืฆื’ ืœืขื™ืœ.

3. ืคืจื™ืกื”

ืคื—ื•ืช ืื• ื™ื•ืชืจ ื‘ืจื•ืจ ื•ืžืคื•ืจื˜ ืื•ื“ื•ืช Yandex.Cloud ื•ืื™ืš ืœืžืงื ืื•ืชื• ืฉื ืคื•ื ืงืฆื™ื•ืช Yandex ื”ืžืชื•ืืจ ื‘ืžืืžืจ ืฉืœื™ ืืœื™ืก ื‘ืืจืฅ ื‘ื™ื˜ืจื™ืงืก - ืื ื™ ืฉื•ืœื— ืืช ื”ื‘ื•ืจื™ื ืœืืจืฅ ื”ื–ืืช, ื•ืœืžืขืŸ ื›ืœ ื”ืฉืืจ (ื•ืืœื” ืฉื—ื–ืจื•) - ืื– ืกืคืจ ืงื•ืžื™ืงืก ืงื˜ืŸ (ื›ืœื•ืžืจ ืกื“ืจืช ืชืžื•ื ื•ืช ื•ื˜ืงืกื˜).

ืื ื—ื ื• ื™ื•ืฆืจื™ื zip-ืืจื›ื™ื•ืŸ (ื‘ื•ื ื ืงืจื ืœื–ื”, ืœืžืฉืœ, mailer.zip), ืฉื‘ื” ืื ื• ื›ื•ืœืœื™ื ืืช ื”ืกืคืจื™ื™ื” ืฆื•ืžืช_ืžื•ื“ื•ืœื™ื ื•ืงื‘ืฆื™ื โ€Ž.env, index.js - ื”ื›ืœ ืžืงื˜ืœื•ื’ ื”ืคืจื•ื™ืงื˜ื™ื ืฉืœื ื•:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ืื ื• ื™ื•ืฆืจื™ื ืคื•ื ืงืฆื™ื” ืขื ื”ืฉื... ื ื›ื•ืŸ - ื“ื•ืืจ, ื‘ืชืคืจื™ื˜ ื”ื ื™ื•ื•ื˜ ื”ืฉืžืืœื™ ืื ื• ื ื›ื ืกื™ื ะ ะตะดะฐะบั‚ะพั€, ืžืœื ืืช ื”ืฉื“ื•ืช ื”ื ื“ืจืฉื™ื ื•ืขื‘ื•ืจ ืœื›ืจื˜ื™ืกื™ื™ื” ืืจื›ื™ื•ืŸ ZIP ืœื”ื•ืจื™ื“ ืืช ื”ืืจื›ื™ื•ืŸ ืฉืœื ื• mailer.zip:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื•ื”ื ื” ื”ืืคืฉืจื•ืช ืฉื”ื•ื–ื›ืจื” ืงื•ื“ื ืœื”ื•ืจื“ื” ืžืคืชื— API ื™ืฉื™ืจื•ืช ื›ืืŸ, ื‘ืžืงื•ื ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ื‘ืคืจื•ื™ืงื˜ .v, ื•ืืœ ืชืชืงื™ืŸ ืืช ื”ื—ื‘ื™ืœื” dotenv. ืื‘ืœ ื›ื‘ืจ ืขืฉื™ื ื• ืืช ื›ืœ ื–ื”, ืื– ืื ื™ ืžืจืื” ืืช ื–ื” ืจืง ืœืžื™ื“ืข. ื›ืœื•ืžืจ, ืื™ืŸ ืฆื•ืจืš ืœืฉื›ืคืœ!

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื›ืขืช, ื‘ืคื™ื ื” ื”ื™ืžื ื™ืช ื”ืขืœื™ื•ื ื”, ืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจ ืฆื•ืจ ื’ืจืกื”, ื•ื”ืžืชืŸ ื›ืžื” ืฉื ื™ื•ืช. ื›ืฉื”ื›ืœ ื™ื”ื™ื” ืžื•ื›ืŸ, ื ืขื‘ื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืœืžื“ื•ืจ ืกืงื™ืจื”. ืฉื ื ืคืขื™ืœ ืืช ื”ืืคืฉืจื•ืช ืชืคืงื™ื“ ืฆื™ื‘ื•ืจื™ื›ืš ืฉืชื•ื›ืœ ืœืชืงืฉืจ ืื™ืชื• ืžื”ืขื•ืœื ื”ื—ื™ืฆื•ืŸ.

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ืืชื” ืจื•ืื” ืืช ื”ืงื™ืฉื•ืจ ื”ื›ื—ื•ืœ ืžื•ืœ ื”ื›ื™ืชื•ื‘ ืงื™ืฉื•ืจ ืฉื™ื—ื”? ืœื—ืฅ ืขืœื™ื•. ื™ื™ืคืชื— ื—ืœื•ืŸ ื“ืคื“ืคืŸ ืจื™ืง... ืื‘ืœ ืจื’ืข - ืงื™ื‘ืœืชื™ ืžื™ื™ืœ:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ืขื›ืฉื™ื• ืืชื” ื™ื›ื•ืœ ืœื—ื–ื•ืจ ืœืงื•ื ืกื•ืœื” SendGrid, ื•ืœื—ืฅ ืขืœ ื”ื›ืคืชื•ืจ ืืžืช ืื™ื ื˜ื’ืจืฆื™ื”. ื”ืžืขืจื›ืช ืชื‘ื“ื•ืง ื”ื›ืœ ื“ืจืš ื”ืขืจื•ืฆื™ื ืฉืœื”, ื•ื›ืชื•ืฆืื” ืžื›ืš ื”ื™ื ืืžื•ืจื” ืœื”ื—ื–ื™ืจ ืžืกืš ื›ื–ื”:

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ื–ื”ื•, ื—ื‘ืจ'ื” (ื•ื‘ื ื•ืช, ื›ืžื•ื‘ืŸ) - ื”ื›ืœ ื‘ืืžืช ืžืื•ื“ ืคืฉื•ื˜ ื•ืืœื’ื ื˜ื™! ื™ื”ื™ื• ืขื•ื“ ืžืืžืจื™ื. ืื ืžื™ืฉื”ื• ืžืขื•ื ื™ื™ืŸ ืœืงืจื•ื ืžืฉื”ื• ื›ื–ื”, ื”ื™ืจืฉืžื• ื›ื“ื™ ืœื ืœืคืกืคืก.

4. ืชืจื•ืžื•ืช

ืคื•ื ืงืฆื™ื•ืช Yandex ืฉื•ืœื—ื•ืช ื“ื•ืืจ

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”