ä»æ¥ã¯ãããããã®ãäœæããŸãã ã€ã³ããã¯ã¹æ©èœ (æ£åŒå称
ç§ã¯ãŸããåŸæ¥ã®ãµãŒããŒã®å察è
(ãã ãç±ççã§ã¯ãããŸãã) ã§ããããããããµãŒããŒã®æ¯æè
ã§ããããŸãã ãµãŒããŒã¬ã¹ (ãµãŒããŒã¬ã¹) ãœãªã¥ãŒã·ã§ã³ãç§ã¯ãµãŒããŒã®ç®¡çã奜ãã§ã¯ãªã (ãããŠãã®æ¹æ³ãããããããªã) ã®ã§ãããã«ãµãŒããŒãè² è·ãããã£ãŠããªãæéã«å¯ŸããŠæéãæ¯æãå¿
èŠãããããã§ãã ããäžã€ã¯æ©èœã§ãã ç§ãããªããŠã誰ãããµãŒãã¹ãæäŸããç§ã¯é話æã®ã¿ãæ¯æããŸãã 2019 幎 XNUMX æåããYandex 㯠Yandexã¯ã©ãŠãæ©èœ - ãã·ã¢é£éŠã§ã¯åã®ããã§ã ãµãŒããŒã¬ã¹ã ãããŠç¹ã«çŽ æŽãããã®ã¯ãã¢ãªã¹ã®ã¹ãã«ã¯åºæ¬çã«ç¡æã§ããããããã以æ¥ãã£ãšç§ã®åšèŸºèŠéã«ãããŸããã ã§ããããå§ããŸãããã
ãã®ã·ããªãªãæ³åããŠã¿ãŸãããã ããªãã®ã¢ããªã±ãŒã·ã§ã³ (äŸ: ã¢ãªã¹ã®ã¹ãã«)
ã©ã®ããã«ããŠãã Yandexã®æ©èœ ããŒã¿ããŒã¹ã«ãšã³ããªãäœæãã ã¯ã©ãŠããã¡ã€ã€ãŒã¹ã㢠ãã¥ãŒããªã¢ã«ã§ãã§ã«èª¬æããŸãã
1.SendGridã§ã¢ã«ãŠã³ããäœæãã
泚æSendGrid ã¯ç§ã®éžæã«ãããŸãããããã«ã¯ããã€ãã®çç±ããããŸããäž»ãªçç±ã¯ãNode.js çšã®æ¢è£œã® SDK ãããããšã§ãã ä»ã®éµéãµãŒãã¹ãéžæããããšãã§ããŸãã
é²ã¿ãŸã
次ã®ã¹ãããã§ã¯ã Node.js:
次ã«ç§ãã¡ãèãåºãã®ã¯ã API-key name (ã³ã³ãœãŒã«ã®ããŒã®ãªã¹ãã«ã®ã¿è¡šç€ºãããä»åŸã®ã³ãŒããšã¯é¢ä¿ãããŸãããäžæœã®ååãæãã€ããã ãã§ã) ã㢠API ããŒïŒãæŒããŠãã¿ã³ãæŒããŸã ããŒã®äœæ:
ããŒãçæãããç§ãã¡ã¯ãããã³ããŒããŠæ¥µç§ã«ä¿ç®¡ããŸãã ãã¿ã³ã®ããç»é¢ã衚瀺ãããŸã çµ±åã®æ€èšŒãäžã®å³ã®ããã«ããŸã ã¯ãªãã¯ããŸããããã³ãŒãã®èšè¿°ã«é²ã¿ãŸãããã
2. ã³ãŒããæžã
ããããã芧ã®ãšãããã³ãŒãèªäœã¯é©ãã»ã©å°ããã22 è¡ã§ãã
åããªã㊠#8 ç§ã®é»åã¡ãŒã«ã¯ããŒãã³ãŒãã£ã³ã°ãããŠããŸã (ãããã£ãŠæ¥ããããã£ãŠé ãããŠããŸã) - ããªãã®é»åã¡ãŒã«ã瀺ããŠãã ããã å®éã«ã¯ããã¹ãŠã®ããŒã¿ (以äžãå«ã) ãåä¿¡ããŸãã email) ãªããžã§ã¯ããã ã€ãã³ãã ããšãã°ãã¡ãœããã®å Žåã POST ãªããžã§ã¯ããé¢æ°ã«éä¿¡ãããŸã user ãã£ãŒã«ãïŒããããã£ïŒãã emailããã®ãã£ãŒã«ãã®å€ã¯æ¬¡ã®ããã«ååŸã§ããŸãã
const { user } = event;
const email = user.email;
ãããŠãã¡ãŒã«ã¢ãã¬ã¹ãã¡ãœããã䜿çšããŠé¢æ°ã«æž¡ãããå Žåã GETããšãã°ã次ã®ããã«ãªããŸãã https://functions.yandexcloud.net/123abc?[email protected]
ãã©ã¡ãŒã¿å€ email 次ã®ããã«ååŸã§ããŸã:
const email = event.queryStringParameters.email;
ãªããžã§ã¯ãã«æ£ç¢ºã«äœãå«ãŸããŠããããèŠãã«ã¯ ã€ãã³ããæãåçŽãªãã®ãäœæã§ããŸã ã€ã³ããã¯ã¹æ©èœ ãããŠãããã¯ãšãªã§ã²ãããŸãã
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/ã¡ãŒã«ã ãããŒã«è¢ é»åã¡ãŒã«ããªããŒã¿ãŒ é»åã¡ãŒã« ã¢ãã¬ã¹ã®æå¹æ§ããã§ãã¯ããŸã (ãªãããã«æšæž¬ã§ããªãã£ãã®ã§ãããã?) ããããã確å®ãªå Žå (ç§ãã¡ãããªããã¡ã«é·ãéãã§ã«ãã§ãã¯ãããŠãã)ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãã (ãããŠããã¡ãããã³ãŒãå ã§ãã§ãã¯ããå¿ èŠã¯ãããŸãã)ã ãããŒã«è¢ ããã³ã ãã¡ã€ã«ããã¬ã³ãŒããèªã¿åãããã«èšèšãããŠããŸã .env ã©ã³ã¿ã€ã å€æ°ãšããŠã ãããã Yandexã®æ©èœ ãããã®å€æ°ãã©ã³ã¿ã€ã ç°å¢ã«çŽæ¥é 眮ããããšãã§ããŸãã ã©ããã£ãŠïŒ - 以äžã«ç€ºããŸãã ãããã£ãŠãããã±ãŒãžã¯ ããã³ã ãŸãããããã€ã³ã¹ããŒã«ããããšãã§ããŸããã .env - äœæããªãã§ãã ãããåæã«ã³ãŒãã¯ãã¡ã€ã«å ã«ãããŸã index.js å€ããªãã§ã ãã ããããã§ã¯ãã®ããã±ãŒãžãã€ã³ã¹ããŒã«ããã®ã§ããã¡ã€ã«ãäœæããŸã index.js О .env:
touch index.js
touch .env
ãã¡ã€ã«å
index.js äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããŠãã 22 è¡ã®ã³ãŒããèšè¿°ããŸã (次ã®è¡ã®ã¿) #8 ã¡ãŒã«ã¢ãã¬ã¹ãå€æŽããŠãã ãã)ããã¡ã€ã«å
.env - (åŒçšç¬Šãå¥èªç¹ãªãã§) ããŒã®åå/å€ã®ãã¢ãæå®ããŸãã 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 ã¡ãŒã«ã¢ãã¬ã¹ãå€æŽ; ã«ãŒããã£ã¬ã¯ããªã«ãã¡ã€ã«ãäœæããŸã .envããã®äžã«ããŒã®åå/å€ã瀺ããŸã API, ã¡ããã©äžã«ç€ºããããã«ã
3.å±é
å€ããå°ãªããæ確ãã€è©³çŽ°ã«ã Yandex.Cloud ãããŠãããããã«çœ®ãæ¹æ³ Yandexã®æ©èœ ç§ã®èšäºã§èª¬æãã
äœæ ZIP-archive (ããšãã°ã次ã®ããã«åŒã³ãŸã) ã¡ãŒã©ãŒ.zip)ãããã«ã¯ãã£ã¬ã¯ããªãå«ãŸããŸã node_modules ãšãã¡ã€ã« .envãindex.js - ãããžã§ã¯ã ã«ã¿ãã°ã®ãã¹ãŠ:
ãšããååã®é¢æ°ãäœæããŸã...æ£ãã㯠- ã¡ãŒã©ãŒãå·ŠåŽã®ããã²ãŒã·ã§ã³ã¡ãã¥ãŒã«æ¬¡ã®ããã«å
¥åããŸã ãšãã£ã¿ãå¿
é ãã£ãŒã«ãã«å
¥åããã¿ãã«åãæ¿ããŸã ZIP ã¢ãŒã«ã€ã ã¢ãŒã«ã€ããããŠã³ããŒã ã¡ãŒã©ãŒ.zip:
ãããŠããããåè¿°ã®ããŠã³ããŒããªãã·ã§ã³ã§ã APIã㌠ãããžã§ã¯ãå
ã«ãã¡ã€ã«ãäœæããã®ã§ã¯ãªããããã§çŽæ¥ .envãããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã ããã³ãã ãã ããããã¯ãã¹ãŠãã§ã«è¡ã£ãŠããã®ã§ãæ
å ±ãšããŠç€ºããŠããŸãã ã€ãŸããè€è£œããå¿
èŠã¯ãããŸããã
å³äžé
ã«ãããã¿ã³ãã¯ãªãã¯ããŸã ããŒãžã§ã³ã®äœæãæ°ç§åŸ
ã¡ãŸãã ãã¹ãŠã®æºåãå®äºãããšãèªåçã«ã»ã¯ã·ã§ã³ã«ç§»åããŸã ÐбзПÑã ããã§ãªãã·ã§ã³ãæå¹ã«ããŸã å
Œ
±æ©èœå€éšã®äžçãããããšå¯Ÿè©±ã§ããããã«ããŸãã
ç¢æã®å察åŽã«éããªã³ã¯ã衚瀺ãããŸã é話ãªã³ã¯? ã¯ãªãã¯ããŠã 空ã®ãã©ãŠã¶ ãŠã£ã³ããŠãéããŸã...ãããåŸ
ã£ãŠãã ããã次ã®ãããªã¡ãŒã«ãåãåããŸããã
ããã§ã³ã³ãœãŒã«ã«æ»ãããšãã§ããŸã SendGridãéžã³ã ãã¿ã³ãæŒã çµ±åã®æ€èšŒã ã·ã¹ãã ã¯ãã®ãã£ãã«ãéããŠãã¹ãŠããã§ãã¯ãããã®çµæã次ã®ãããªç»é¢ãè¿ãããŸãã
ããã ãã§ããçããïŒãã¡ãã女ã®åãïŒããã¹ãŠããšãŠãã·ã³ãã«ã§ãšã¬ã¬ã³ãã§ãïŒ ãã£ãšèšäºãå¢ããã§ãããã ãã®ãããªèšäºãèªã¿ãã人ãããããèŠéããªãããã«è³ŒèªããŠãã ããã
4. å¯ä»
åºæïŒ habr.com