āĻāĻ āĻāĻŽāĻ°āĻž āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ (āĻĻāĻžāĻĒā§āĻ¤āĻ°āĻŋāĻ āĻ¨āĻžāĻŽ
āĻāĻŽāĻŋāĻ āĻĒā§āĻ°āĻĨāĻžāĻāĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻ¨ āĻŦāĻŋāĻ°ā§āĻ§ā§ (āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ§āĻ°ā§āĻŽāĻžāĻ¨ā§āĻ§āĻ¤āĻž āĻāĻžāĻĄāĻŧāĻž) āĻāĻŦāĻ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻāĨ¤ serverless (āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŦāĻŋāĻšā§āĻ¨) āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻ¨āĻž (āĻāĻŦāĻ āĻāĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻžāĻ¨āĻŋ āĻ¨āĻž) āĻāĻŦāĻ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻ°ā§, āĻ¯āĻāĻ¨ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ˛ā§āĻĄ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻāĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĢāĻžāĻāĻļāĻ¨. āĻā§āĻ āĻāĻŽāĻžāĻā§ āĻāĻžāĻĄāĻŧāĻž āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŋāĨ¤ āĻ
āĻā§āĻā§āĻŦāĻ° 2019 āĻāĻ° āĻļā§āĻ°ā§āĻ¤ā§, āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻā§ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻā§āĻ˛āĻžāĻāĻĄ āĻĢāĻžāĻāĻļāĻ¨ - āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĢā§āĻĄāĻžāĻ°ā§āĻļāĻ¨ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ serverless. āĻāĻŦāĻ āĻ¯āĻž āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻāĻŽā§āĻāĻžāĻ° āĻ¤āĻž āĻšāĻ˛ āĻ
ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ā§āĻ° āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§, āĻ¤āĻžāĻ āĻ¤āĻžāĻ°āĻž āĻ¤āĻāĻ¨ āĻĨā§āĻā§āĻ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻĻā§āĻˇā§āĻāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ.
āĻāĻ¸ā§āĻ¨ āĻāĻ āĻĻā§āĻļā§āĻ¯āĻāĻ˛ā§āĻĒ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ
ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ā§āĻ° āĻĻāĻā§āĻˇāĻ¤āĻž
āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻ˛āĻžāĻāĻĄ āĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ¸ā§āĻā§āĻ° āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§ āĻāĻāĻŋ āĻĻā§āĻā§āĻāĻŋ
1. āĻ¸ā§āĻ¨ā§āĻĄāĻā§āĻ°āĻŋāĻĄā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯SendGrid āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻŽāĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻ, āĻ¯āĻž āĻāĻŽāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ°āĻŖā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ, āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻāĻŋ āĻšāĻ˛ āĻ¤āĻžāĻĻā§āĻ° Node.js-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ SDK āĻāĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻŽā§āĻāĻ˛āĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻ˛ āĻāĻā§āĻ
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻŋ node.js:
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻā§ āĻāĻ¸āĻž āĻāĻĒāĻŋāĻāĻ-āĻā§ āĻ¨āĻžāĻŽ (āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§āĻ° āĻā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ āĻ¨ā§āĻ; āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻāĻāĻāĻŋ āĻ
āĻŦāĻŋāĻ¨āĻļā§āĻŦāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĻāĻŋ āĻĄā§āĻŽā§-āĻāĻĒāĻŋāĻāĻ-āĻā§) āĻāĻŦāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨:
āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻŦ āĻāĻŦāĻ āĻāĻā§āĻ° āĻāĻ¤ā§āĻŽāĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§ āĻ°āĻžāĻāĻŦāĨ¤ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¤āĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻĻāĻž āĻĨāĻžāĻāĻŦā§ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨, āĻ¨ā§āĻā§āĻ° āĻāĻŦāĻŋāĻ° āĻŽāĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻā§āĻĄ āĻ˛ā§āĻāĻžāĻ° āĻĻāĻŋāĻā§ āĻāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ:
2. āĻā§āĻĄ āĻ˛ā§āĻāĻž
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻĄ āĻ¨āĻŋāĻā§āĻ, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻšāĻžāĻ¸ā§āĻ¯āĻāĻ°āĻāĻžāĻŦā§ āĻā§āĻ - 22 āĻ˛āĻžāĻāĻ¨!
āĻ¸āĻā§āĻāĻ¤āĻŋāĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ #8 āĻāĻŽāĻžāĻ° āĻāĻŽā§āĻ˛ āĻšāĻžāĻ°ā§āĻĄāĻā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻŦāĻ āĻ¤āĻžāĻ āĻ˛āĻžāĻā§āĻāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻžāĻ¨ā§) - āĻ
āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨āĨ¤ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻā§āĻŦāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž (āĻ¸āĻš āĻāĻŽā§āĻāĻ˛) āĻŦāĻ¸ā§āĻ¤ā§ āĻĨā§āĻā§ āĻāĻāĻ¨āĻž. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ¸ā§āĻ āĻāĻāĻāĻŋ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¸āĻš (āĻ¸āĻŽā§āĻĒāĻ¤ā§āĻ¤āĻŋ) āĻāĻŽā§āĻāĻ˛, āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻŽāĻžāĻ¨ āĻāĻ āĻŽāĻ¤ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
const { user } = event;
const email = user.email;
āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻŽā§āĻ˛ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, https://functions.yandexcloud.net/123abc?[email protected]
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŽāĻžāĻ¨ āĻāĻŽā§āĻāĻ˛ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻ āĻŽāĻ¤ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
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/āĻŽā§āĻāĻ˛. āĻĒā§āĻ˛āĻžāĻ¸ā§āĻāĻŋāĻ āĻŦā§āĻ¯āĻžāĻ āĻāĻŽā§āĻ˛ āĻ¯āĻžāĻāĻžāĻāĻāĻžāĻ°ā§ āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻ˛ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ (āĻāĻāĻ¨āĻ āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻŋāĻ¨āĻŋ?), āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻšāĻ (āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻĄāĻŧāĻžāĻ āĻĻā§āĻ°ā§āĻāĻĻāĻŋāĻ¨ āĻ§āĻ°ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§), āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž (āĻāĻŦāĻ, āĻāĻ° āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄā§ āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž)āĨ¤ āĻĒā§āĻ˛āĻžāĻ¸ā§āĻāĻŋāĻ āĻŦā§āĻ¯āĻžāĻ dotenv āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ .env āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛āĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻŋāĻāĻžāĻŦā§? - āĻāĻŽāĻŋ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻŦ. āĻ¤āĻžāĻ āĻĒā§āĻ¯āĻžāĻā§āĻ dotenv āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž .env - āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻā§āĻĄāĻāĻŋ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻ°āĻ¯āĻŧā§āĻā§ index.js āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ index.js и .env:
touch index.js
touch .env
āĻĢāĻžāĻāĻ˛ā§ index.js āĻāĻĒāĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻļāĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻā§āĻĄā§āĻ° 22 āĻ˛āĻžāĻāĻ¨ āĻ˛āĻŋāĻā§āĻ¨ (āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻžāĻāĻ¨ā§ #8 āĻāĻĒāĻ¨āĻžāĻ° āĻāĻŽā§āĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨), āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ā§ .env - (āĻā§āĻ¨āĻ āĻāĻĻā§āĻ§ā§āĻ¤āĻŋ āĻŦāĻž āĻŦāĻŋāĻ°āĻžāĻŽ āĻāĻŋāĻšā§āĻ¨ āĻāĻžāĻĄāĻŧāĻž) āĻā§āĻĄāĻŧāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ - āĻā§ āĻ¨āĻžāĻŽ/āĻŽāĻžāĻ¨ āĻāĻĒāĻŋāĻāĻāĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ 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, āĻāĻŦāĻ āĻāĻ¤ā§ āĻā§āĻāĻŋāĻ° āĻ¨āĻžāĻŽ/āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻāĻĒāĻŋāĻāĻ, āĻ āĻŋāĻ āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
3. āĻ¸ā§āĻĨāĻžāĻĒāĻ¨
āĻāĻŽāĻŦā§āĻļāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ Yandex.Cloud āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤
āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ¨āĻžāĻ āĻĢā§āĻ¯āĻžāĻ¸ā§ āĻļāĻŦā§āĻĻāĻāĻ°ā§āĻāĻžāĻāĻ (āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, mailer.zip), āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŋ āĻ¨ā§āĻĄ_āĻŽāĻĄāĻŋāĻāĻ˛āĻ¸ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ .env, index.js - āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻā§āĻ¯āĻžāĻāĻžāĻ˛āĻ āĻĨā§āĻā§ āĻ¸āĻŦāĻāĻŋāĻā§:
āĻāĻŽāĻ°āĻž āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ... āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ - āĻŽā§āĻāĻ˛āĻžāĻ°, āĻŦāĻžāĻŽ āĻ¨ā§āĻāĻŋāĻā§āĻļāĻ¨ āĻŽā§āĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻŦā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻ¨ā§ˇ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ°ā§āĻāĻžāĻāĻ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ mailer.zip:
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻā§ API āĻā§ āĻĒā§āĻ°āĻā§āĻā§āĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻāĻžāĻ¨ā§ .env, āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž dotenv. āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ āĻ¸āĻŦ āĻāĻ°ā§ āĻĢā§āĻ˛ā§āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻĻā§āĻāĻžāĻā§āĻāĻŋāĨ¤ āĻ
āĻ°ā§āĻĨāĻžā§ āĻĄā§āĻĒā§āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻ!
āĻāĻāĻ¨ āĻāĻĒāĻ°ā§āĻ° āĻĄāĻžāĻ¨ āĻā§āĻŖāĻžāĻ¯āĻŧ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻāĻ¯āĻŧā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻšāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻžāĻŦ āĻāĻāĻžāĻ°āĻāĻŋāĻ. āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻŦ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻŦāĻžāĻāĻ°ā§āĻ° āĻŦāĻŋāĻļā§āĻŦ āĻĨā§āĻā§ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻļāĻŋāĻ˛āĻžāĻ˛āĻŋāĻĒāĻŋ āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ¨ā§āĻ˛ āĻ˛āĻŋāĻā§āĻ āĻĻā§āĻāĻ¤ā§ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻ˛āĻŋāĻā§āĻ? āĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨. āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻāĻ¨ā§āĻĄā§ āĻā§āĻ˛āĻŦā§... āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ - āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ˛ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ:
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻĢāĻŋāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ SendGrid, āĻāĻŦāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻŋāĻĒā§āĻ¨ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻ¨. āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻ¤āĻžāĻ° āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛āĻā§āĻ˛āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤:
āĻāĻāĻž, āĻā§āĻ˛ā§āĻ°āĻž (āĻāĻŦāĻ āĻŽā§āĻ¯āĻŧā§āĻ°āĻž, āĻ
āĻŦāĻļā§āĻ¯āĻ) - āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻā§āĻŦ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¤! āĻāĻ°ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĨāĻžāĻāĻŦā§. āĻā§āĻ āĻ¯āĻĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨, āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻžāĻāĻŦ āĻāĻ°ā§āĻ¨ āĻ¯āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻŽāĻŋāĻ¸ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
4. āĻ āĻ¨ā§āĻĻāĻžāĻ¨
āĻāĻ¤ā§āĻ¸: www.habr.com