เจ
เฉฑเจ เจธเจพเจจเฉเฉฐ เจเจธ เจฒเจ-เจเจนเจฟเฉฐเจฆเฉ เจฌเจฃเจพเจเจฃ เจเจพเจตเฉเจเจพ. Yandex เจซเฉฐเจเจธเจผเจจ (เจ
เจงเจฟเจเจพเจฐเจค เจจเจพเจฎ
เจฎเฉเจ เจฐเจตเจพเจเจคเฉ เจธเจฐเจตเจฐเจพเจ เจฆเจพ เจตเจฟเจฐเฉเจงเฉ (เจชเจฐ เจเฉฑเจเฉเจคเจพ เจคเฉเจ เจฌเจฟเจจเจพเจ) เจตเฉ เจนเจพเจ, เจ
เจคเฉ เจ
เจเฉเจคเฉ เจฆเจพ เจธเจฎเจฐเจฅเจ เจตเฉ เจนเจพเจเฅค เจธเจฐเจตเจฐ (เจธเจฐเจตเจฐ เจฐเจนเจฟเจค) เจนเฉฑเจฒ, เจเจฟเจเจเจเจฟ เจฎเฉเจจเฉเฉฐ เจชเจธเฉฐเจฆ เจจเจนเฉเจ เจนเฉ (เจ
เจคเฉ เจฎเฉเจ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเจฟ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉ) เจธเจฐเจตเจฐเจพเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจเจพ เจนเฉ, เจ
เจคเฉ เจเจธ เจคเฉเจ เจตเฉ เจตเฉฑเจง, เจเจธ เจธเจฎเฉเจ เจฒเจ เจญเฉเจเจคเจพเจจ เจเจฐเฉ เจเจฆเฉเจ เจเจน เจฒเฉเจก เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเจจ. เจเจ เจนเฉเจฐ เจเฉเจเจผ เจซเฉฐเจเจธเจผเจจ เจนเฉ. เจเฉเจ เจฎเฉเจฐเฉ เจฌเจฟเจจเจพเจ เจเจนเจจเจพเจ เจฆเฉ เจธเฉเจตเจพ เจเจฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจฎเฉเจ เจธเจฟเจฐเจซเจผ เจเจพเจฒเจพเจ เจฒเจ เจญเฉเจเจคเจพเจจ เจเจฐเจฆเจพ เจนเจพเจเฅค เจ
เจเจคเฉเจฌเจฐ 2019 เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจตเจฟเฉฑเจ, เจฏเจพเจเจกเฉเจเจธ เจจเฉ เจเจชเจฃเจพ เจชเฉเจธเจผ เจเฉเจคเจพ เจฏเจพเจเจกเฉเจเจธ เจเจฒเจพเจเจก เจซเฉฐเจเจธเจผเจจ - เจฐเฉเจธเฉ เจธเฉฐเจ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเฉ เจเจพเจชเจฆเฉ เจนเฉ เจธเจฐเจตเจฐ. เจ
เจคเฉ เจเจพเจธ เจคเฉเจฐ 'เจคเฉ เจเฉ เจตเจงเฉเจ เจนเฉ เจเจฟ เจเจฒเจฟเจธ เจฆเฉ เจนเฉเจจเจฐ เจฒเจ เจเจน เจเจฎ เจคเฉเจฐ 'เจคเฉ เจฎเฉเจซเจค เจนเฉเฉฐเจฆเฉ เจนเจจ, เจเจธ เจฒเจ เจเจน เจเจฆเฉเจ เจคเฉเจ เจฎเฉเจฐเฉ เจชเฉเจฐเฉเจซเจฟเจฐเจฒ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจตเจฟเฉฑเจ เจนเจจเฅค เจชเจฐ เจเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ.
เจเจ เจเจธ เจฆเฉเจฐเจฟเจธเจผ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเฉเจเฅค เจคเฉเจนเจพเจกเฉ เจ
เจฐเจเจผเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเจฒเจฟเจธ เจฆเจพ เจนเฉเจจเจฐ
เจเจธ เจฌเจพเจฐเฉ เจเจฟ เจเจฟเจตเฉเจ เจคเฉเจ Yandex เจซเฉฐเจเจธเจผเจจ เจกเจพเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจเจเจเจฐเฉเจเจ เจเจฐเฉ เจเจฒเจพเจเจก เจซเจพเจเจฐเจธเจเฉเจฐ เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจฟเจเจเฉเจฐเจฟเจ
เจฒ เจตเจฟเฉฑเจ เจฆเฉเจ เจเฉเฉฑเจเฉ เจนเจพเจ
1. SendGrid เจตเจฟเฉฑเจ เจเฉฑเจ เจเจพเจคเจพ เจฌเจฃเจพเจ
เจเจฟเฉฑเจชเจฃเฉSendGrid เจธเจฟเจฐเจซเจผ เจฎเฉเจฐเฉ เจชเจธเฉฐเจฆ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจฎเฉเจ เจเจ เจเจพเจฐเจจเจพเจ เจเจฐเจเฉ เจฌเจฃเจพเจเจ เจนเฉ, เจฎเฉเฉฑเจ เจเจพเจฐเจจ เจเจน เจนเฉ เจเจฟ เจเจนเจจเจพเจ เจเฉเจฒ Node.js เจฒเจ เจคเจฟเจเจฐ-เจเฉเจคเฉ SDK เจนเฉเฅค เจคเฉเจธเฉเจ เจเฉเจ เจนเฉเจฐ เจฎเฉเจฒเจฟเฉฐเจ เจธเฉเจตเจพ เจเฉเจฃ เจธเจเจฆเฉ เจนเฉเฅค
เจเจฒเฉ เจ
เฉฑเจเฉ เจตเจงเจฆเฉ เจนเจพเจ
เจ
เจเจฒเฉ เจชเฉเจพเจ
เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจเฉเจฃเจฆเฉ เจนเจพเจ Node.js:
เจ
เฉฑเจเฉ เจธเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจฒเจ เจจเจพเจฒ เจ API-เจเฉเฉฐเจเฉ เจฆเจพ เจจเจพเจฎ (เจธเจฟเจฐเจซเจผ เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจธเฉเจเฉ เจตเจฟเฉฑเจ เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพ, เจ
เจคเฉ เจธเจพเจกเฉ เจญเจตเจฟเฉฑเจ เจฆเฉ เจเฉเจก เจจเจพเจฒ เจเฉเจ เจฒเฉเจฃเจพ-เจฆเฉเจฃเจพ เจจเจนเฉเจ เจนเฉ; เจฎเฉเจ เจนเฉเจฃเฉ เจเฉฑเจ เจ
เจตเจฟเจจเจพเจธเจผเฉ เจจเจพเจฒ เจเจเจ เจนเจพเจ เจกเฉเจฎเฉ-เจเจชเฉเจเจ-เจเฉเฉฐเจเฉ) เจ
เจคเฉ เจฌเจเจจ เจฆเจฌเจพเจ เจเฉเฉฐเจเฉ เจฌเจฃเจพเจ:
เจเฉเฉฐเจเฉ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ, เจ
เจธเฉเจ เจเจธเจจเฉเฉฐ เจเจพเจชเฉ เจเจฐเจพเจเจเฉ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจกเฉเฉฐเจเฉ เจญเจฐเฉเจธเฉ เจตเจฟเฉฑเจ เจฐเฉฑเจเจพเจเจเฉ. เจ
เจคเฉ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจฌเจเจจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจเฉเจฐเฉเจจ เจนเฉเจตเฉเจเฉ เจเจเฉเจเจฐเจฃ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเฉ, เจเจฟเจตเฉเจ เจเจฟ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจคเจธเจตเฉเจฐ เจตเจฟเฉฑเจ เจนเฉ, เจชเจฐ เจ
เจธเฉเจ เจ
เจเฉ เจเจธ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจจเจนเฉเจ เจเจฐเจพเจเจเฉ, เจชเจฐ เจเจ เจเฉเจก เจฒเจฟเจเจฃ เจฒเจ เจ
เฉฑเจเฉ เจตเจงเฉเจ:
2. เจเฉเจก เจฒเจฟเจเจฃเจพ
เจชเจฐ เจเฉเจก เจเจชเจฃเฉ เจเจช, เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจนเจพเจธเฉเจนเฉเจฃเฉ เจคเฉเจฐ 'เจคเฉ เจเฉเจเจพ เจนเฉ - 22 เจฒเจพเจเจจเจพเจ!
เจเจจ เจฒเจพเจเจจ #8 เจฎเฉเจฐเฉ เจเจฎเฉเจฒ เจนเจพเจฐเจกเจเฉเจก เจเฉเจคเฉ เจเจ เจนเฉ (เจ
เจคเฉ เจเจธเจฒเจ เจธเจผเจฐเจฎ เจจเจพเจฒ เจฒเฉเจเฉ เจนเฉเจ เจนเฉ) - เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจเจชเจฃเจพ เจธเฉฐเจเฉเจค เจฆเจฟเจเฅค เจ
เจธเจฒ เจเฉเจตเจจ เจตเจฟเฉฑเจ, เจ
เจธเฉเจ เจธเจพเจฐเจพ เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจพเจเจเฉ (เจธเจฎเฉเจค เจ-เจฎเฉเจฒ) เจตเจธเจคเฉ เจคเฉเจ เจเจเจจเจพ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจเจฐ เจตเจฟเจงเฉ เจชเฉเจธเจ เจเฉฑเจ เจตเจธเจคเฉ เจธเจพเจกเฉ เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจญเฉเจเฉ เจเจพเจเจฆเฉ เจนเฉ เจเจชเจญเฉเจเฉ เจจเฉเฉฐ เจเฉเจคเจฐ (เจธเฉฐเจชเฉฑเจคเฉ) เจฆเฉ เจจเจพเจฒ เจ-เจฎเฉเจฒ, เจเจธ เจเฉเจคเจฐ เจฆเจพ เจฎเฉเฉฑเจฒ เจเจธ เจคเจฐเฉเจนเจพเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ:
const { user } = event;
const email = user.email;
เจ
เจคเฉ เจเฉเจเจฐ เจเจฎเฉเจฒ เจชเจคเจพ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจชเจพเจธ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ GET, เจเจฆเจพเจนเจฐเจจ เจฒเจ: 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 เจเฉฑเจ เจซเจพเจเจฒ เจคเฉเจ เจฐเจฟเจเจพเจฐเจกเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฒเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ .env เจฐเจจเจเจพเจเจฎ เจตเฉเจฐเฉเจเจฌเจฒ เจตเจเฉเจเฅค เจชเจฐ เจตเจฟเฉฑเจ Yandex เจซเฉฐเจเจธเจผเจจ เจเจนเจจเจพเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจจเฉเฉฐ เจฐเจจเจเจพเจเจฎ เจตเจพเจคเจพเจตเจฐเจจ เจตเจฟเฉฑเจ เจธเจฟเฉฑเจงเจพ เจฐเฉฑเจเจฃเจพ เจธเฉฐเจญเจต เจนเฉเฅค เจเจฟเจตเฉเจ? - เจฎเฉเจ เจเจธเจจเฉเฉฐ เจนเฉเจ เจพเจ เจฆเจฟเจเจพเจตเจพเจเจเจพ. เจเจธ เจฒเจ เจชเฉเจเฉเจ dotenv เจคเฉเจธเฉเจ เจเจธ เจจเฉเฉฐ เจ เจคเฉ เจซเจพเจเจฒ เจจเฉเฉฐ เจตเฉ เจเฉฐเจธเจเจพเจฒ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ .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 เจซเฉฐเจเจธเจผเจจ เจฎเฉเจฐเฉ เจฒเฉเจ เจตเจฟเฉฑเจ เจฆเฉฑเจธเจฟเจ เจเจฟเจ เจนเฉ
เจ เจธเฉเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจเจผเจฟเจช-เจชเฉเจฐเจพเจฒเฉเจ (เจเจ เจเจธเจจเฉเฉฐ เจเจพเจฒ เจเจฐเฉเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, mailer.zip), เจเจฟเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจธเจผเจพเจฎเจฒ เจเจฐเจฆเฉ เจนเจพเจ เจจเฉเจก_เจฎเฉเจกเจฟ .เจฒเจเจผ เจ เจคเฉ เจซเจพเจเจฒเจพเจ .env, index.js - เจธเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจ เจเฉเจเจพเจฒเจพเจ เจคเฉเจ เจธเจญ เจเฉเจ:
เจ
เจธเฉเจ เจจเจพเจฎ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ ... เจธเจนเฉ - เจฎเฉเจฒเจฐ, เจเฉฑเจฌเฉ เจจเฉเจตเฉเจเฉเจธเจผเจจ เจฎเฉเจจเฉ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจฆเจพเจเจฒ เจนเฉเฉฐเจฆเฉ เจนเจพเจ เจธเฉฐเจชเจพเจฆเจ, เจฒเฉเฉเฉเจเจฆเฉ เจเฉเจคเจฐเจพเจ เจจเฉเฉฐ เจญเจฐเฉ, เจ
เจคเฉ เจเฉเจฌ 'เจคเฉ เจเจพเจ ZIP เจชเฉเจฐเจพเจฒเฉเจ เจธเจพเจกเฉ เจชเฉเจฐเจพเจฒเฉเจ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเฉ mailer.zip:
เจ
เจคเฉ เจเฉฑเจฅเฉ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฒเจ เจชเจนเจฟเจฒเจพเจ เจเจผเจฟเจเจฐ เจเฉเจคเจพ เจตเจฟเจเจฒเจช เจนเฉ API เจเฉเฉฐเจเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฌเจเจพเจ เจธเจฟเฉฑเจงเฉ เจเฉฑเจฅเฉ .env, เจ
เจคเฉ เจชเฉเจเฉเจ เจจเฉเฉฐ เจเฉฐเจธเจเจพเจฒ เจจเจพ เจเจฐเฉ dotenv. เจชเจฐ เจ
เจธเฉเจ เจเจน เจธเจญ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจฐ เจเฉเฉฑเจเฉ เจนเจพเจ, เจเจธ เจฒเจ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจธเจฟเจฐเจซ เจเจพเจฃเจเจพเจฐเฉ เจฒเจ เจฆเจฟเจเจพ เจฐเจฟเจนเจพ เจนเจพเจเฅค เจญเจพเจต, เจจเจเจฒ เจเจฐเจจ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ!
เจนเฉเจฃ เจเฉฑเจชเจฐ เจธเฉฑเจเฉ เจเฉเจจเฉ เจตเจฟเฉฑเจ เจฌเจเจจ เจจเฉเฉฐ เจฆเจฌเจพเจ เจธเฉฐเจธเจเจฐเจฃ เจฌเจฃเจพเจ, เจ
เจคเฉ เจเฉเจ เจธเจเจฟเฉฐเจ เจเจกเฉเจ เจเจฐเฉเฅค เจเจฆเฉเจ เจธเจญ เจเฉเจ เจคเจฟเจเจฐ เจนเฉ เจเจพเจเจฆเจพ เจนเฉ, เจ
เจธเฉเจ เจเจชเจฃเฉ เจเจช เจนเฉ เจญเจพเจ เจตเจฟเฉฑเจ เจเจพเจตเจพเจเจเฉ เจธเฉฐเจเฉเจช. เจเฉฑเจฅเฉ เจ
เจธเฉเจ เจตเจฟเจเจฒเจช เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจตเจพเจเจเฉ เจเจจเจคเจ เจซเฉฐเจเจธเจผเจจเจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจฌเจพเจนเจฐเฉ เจฆเฉเจจเฉเจ เจคเฉเจ เจเจธ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจเจฐ เจธเจเฉเฅค
เจคเฉเจธเฉเจ เจธเจผเจฟเจฒเจพเจฒเฉเจ เจฆเฉ เจเจฒเจ เจจเฉเจฒเจพ เจฒเจฟเฉฐเจ เจฆเฉเจเจฆเฉ เจนเฉ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจฒเจฟเฉฐเจ? เจเจธ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉเฅค เจเฉฑเจ เจเจพเจฒเฉ เจฌเฉเจฐเจพเจเจเจผเจฐ เจตเจฟเฉฐเจกเฉ เจเฉเฉฑเจฒเฉเจเฉ... เจชเจฐ เจเจกเฉเจ เจเจฐเฉ - เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจเจฎเฉเจฒ เจชเฉเจฐเจพเจชเจค เจนเฉเจ:
เจนเฉเจฃ เจคเฉเจธเฉเจ เจเฉฐเจธเฉเจฒ 'เจคเฉ เจตเจพเจชเจธ เจเจพ เจธเจเจฆเฉ เจนเฉ SendGrid, เจ
เจคเฉ เจฌเจเจจ เจฆเจฌเจพเจ เจเจเฉเจเจฐเจฃ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเฉ. เจธเจฟเจธเจเจฎ เจเจชเจฃเฉ เจเฉเจจเจฒเจพเจ เจฐเจพเจนเฉเจ เจนเจฐ เจเฉเจเจผ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจเจพ, เจ
เจคเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจเจธเจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจเฉฑเจ เจธเจเฉเจฐเฉเจจ เจตเจพเจชเจธ เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ:
เจฌเฉฑเจธ เจเจน เจนเฉ, เจฎเฉเฉฐเจกเฉ (เจ
เจคเฉ เจเฉเฉเฉเจเจ, เจฌเฉเจธเจผเจ) - เจนเจฐ เจเฉเจเจผ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจงเจพเจฐเจจ เจ
เจคเฉ เจธเจผเจพเจจเจฆเจพเจฐ เจนเฉ! เจนเฉเจฐ เจฒเฉเจ เจนเฉเจฃเจเฉเฅค เจเฉเจเจฐ เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจพ เจเฉเจ เจชเฉเฉเจนเจจ เจตเจฟเฉฑเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเจพ เจนเฉ, เจคเจพเจ เจธเจฌเจธเจเฉเจฐเจพเจเจฌ เจเจฐเฉ เจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจเฉเจ เจจเจพ เจเจพเจเฅค
4. เจฆเจพเจจ
เจธเจฐเฉเจค: www.habr.com