āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŽā§‡āĻ˛ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ

āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŽā§‡āĻ˛ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ

āĻ†āĻœ āĻ†āĻŽāĻ°āĻž āĻ¤āĻĨāĻžāĻ•āĻĨāĻŋāĻ¤ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦāĨ¤ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨ (āĻĻāĻžāĻĒā§āĻ¤āĻ°āĻŋāĻ• āĻ¨āĻžāĻŽ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĢāĻžāĻ‚āĻļāĻ¨), āĻ¯āĻž āĻŽā§‡āĻ‡āĻ˛āĻŋāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻœāĻĄāĻŧāĻŋāĻ¤ SendGrid āĻļāĻžāĻ¨ā§āĻ¤āĻŋāĻĒā§‚āĻ°ā§āĻŖāĻ­āĻžāĻŦā§‡ āĻ˜ā§āĻŽāĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ "āĻ¸āĻžāĻŦāĻžāĻ¨" āĻĒāĻžāĻ āĻžāĻŦā§‡ (āĻļā§āĻ§ā§ āĻŽāĻœāĻž āĻ•āĻ°āĻ›āĻŋ - āĻ†āĻŽāĻŋ āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦāĻžāĻ‡ āĻ¸ā§āĻĒā§āĻ¯āĻžāĻŽā§‡āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡)āĨ¤

āĻ†āĻŽāĻŋāĻ“ āĻĒā§āĻ°āĻĨāĻžāĻ—āĻ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻœāĻ¨ āĻŦāĻŋāĻ°ā§‹āĻ§ā§€ (āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ§āĻ°ā§āĻŽāĻžāĻ¨ā§āĻ§āĻ¤āĻž āĻ›āĻžāĻĄāĻŧāĻž) āĻāĻŦāĻ‚ āĻ¤āĻĨāĻžāĻ•āĻĨāĻŋāĻ¤ āĻ¸āĻŽāĻ°ā§āĻĨāĻ•āĨ¤ serverless (āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŦāĻŋāĻšā§€āĻ¨) āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨, āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ āĻ¨āĻž (āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻœāĻžāĻ¨āĻŋ āĻ¨āĻž) āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻ•āĻ°ā§‡, āĻ¯āĻ–āĻ¨ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ˛ā§‹āĻĄ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¤āĻ–āĻ¨ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨. āĻ•ā§‡āĻ‰ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ›āĻžāĻĄāĻŧāĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĻā§‡āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻ•āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ°ā§āĻĨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°āĻŋāĨ¤ āĻ…āĻ•ā§āĻŸā§‹āĻŦāĻ° 2019 āĻāĻ° āĻļā§āĻ°ā§āĻ¤ā§‡, āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻāĻŸāĻŋ āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĢāĻžāĻ‚āĻļāĻ¨ - āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĢā§‡āĻĄāĻžāĻ°ā§‡āĻļāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ serverless. āĻāĻŦāĻ‚ āĻ¯āĻž āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻšāĻŽā§ŽāĻ•āĻžāĻ° āĻ¤āĻž āĻšāĻ˛ āĻ…ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ā§‡āĻ° āĻĻāĻ•ā§āĻˇāĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¤āĻžāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡, āĻ¤āĻžāĻ‡ āĻ¤āĻžāĻ°āĻž āĻ¤āĻ–āĻ¨ āĻĨā§‡āĻ•ā§‡āĻ‡ āĻ†āĻŽāĻžāĻ° āĻĒā§‡āĻ°āĻŋāĻĢā§‡āĻ°āĻžāĻ˛ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ¤ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ° āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•.

āĻ†āĻ¸ā§āĻ¨ āĻāĻ‡ āĻĻā§ƒāĻļā§āĻ¯āĻ•āĻ˛ā§āĻĒ āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•. āĻ†āĻĒāĻ¨āĻžāĻ° āĻ†āĻŦā§‡āĻĻāĻ¨ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ…ā§āĻ¯āĻžāĻ˛āĻŋāĻ¸ā§‡āĻ° āĻĻāĻ•ā§āĻˇāĻ¤āĻž āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ¨ āĻ¯āĻž, āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻžāĻ°āĻž, āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨) āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻœāĻŋāĻŸāĻžāĻ˛ āĻĒāĻŖā§āĻ¯ āĻ•ā§‡āĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ†āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻœāĻžāĻ¨āĻžāĻ¯āĻŧ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ—ā§āĻ˛āĻŋ, āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻ•āĻŸāĻŋ āĻ…āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ā§ˇ āĻ•āĻŋāĻ›ā§ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§‡āĻŽā§‡āĻ¨ā§āĻŸ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ (āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ•āĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸) āĻĒā§‡āĻŽā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ (āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻŋāĻ™ā§āĻ• āĻĨāĻžāĻ•āĻŦā§‡ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨) HTTP- āĻ°-āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ°ā§āĻĨ, āĻĒā§āĻ°ā§‹ āĻ¨āĻžāĻŽ, āĻĢā§‹āĻ¨ āĻ¨āĻŽā§āĻŦāĻ° āĻāĻŦāĻ‚ āĻ‡āĻŽā§‡āĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ…āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¸āĻŽā§āĻŦāĻ˛āĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻāĻ‡ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ: āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨, āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ•āĻ°ā§āĻ¨, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ āĻ–ā§āĻĻā§‡āĻŦāĻžāĻ°ā§āĻ¤āĻž и āĻ‡-āĻŽā§‡āĻ‡āĻ˛ āĻ…āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ•āĻ°āĻŖ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ¸āĻšāĨ¤ āĻ¤āĻžāĻ‡ āĻ¨āĻŋāĻœā§‡āĻ•ā§‡ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸.

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻāĻ¨ā§āĻŸā§āĻ°āĻŋ āĻ•āĻ°āĻž āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĢāĻžāĻ¯āĻŧāĻžāĻ° āĻ¸ā§āĻŸā§‹āĻ° āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻŸāĻŋāĻ‰āĻŸā§‹āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ā§‡ āĻāĻŸāĻŋ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ āĻāĻ˛āĻŋāĻ¸ āĻ¸āĻŦ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–ā§‡ (āĻāĻŦāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡, āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻ¯ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻŦ - āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ–ā§āĻĻā§‡āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸.āĻŽāĻžāĻ¨āĻŋ - āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻ•āĻŸ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡ āĻāĻŸāĻŋ āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻŦāĨ¤ āĻāĻ–āĻ¨ āĻļā§āĻ§ā§ āĻšāĻŋāĻ āĻŋ āĻĒāĻžāĻ āĻžāĻ¨ā§‹āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽā§‹āĻ•āĻžāĻŦāĻŋāĻ˛āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•.

1. āĻ¸ā§‡āĻ¨ā§āĻĄāĻ—ā§āĻ°āĻŋāĻĄā§‡ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨

āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯SendGrid āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻŽāĻžāĻ° āĻĒāĻ›āĻ¨ā§āĻĻ, āĻ¯āĻž āĻ†āĻŽāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ•āĻžāĻ°āĻŖā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻŸāĻŋ āĻšāĻ˛ āĻ¤āĻžāĻĻā§‡āĻ° Node.js-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ SDK āĻ†āĻ›ā§‡āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ā§‹ āĻŽā§‡āĻ‡āĻ˛āĻŋāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻšāĻ˛ āĻāĻ—ā§‹āĻ‡ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻĒā§ƒāĻˇā§āĻ āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻĢāĻ°ā§āĻŽ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°ā§āĻ¨. āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĄā§āĻ¯āĻžāĻļāĻŦā§‹āĻ°ā§āĻĄ, āĻ¨ā§‡āĻ­āĻŋāĻ—ā§‡āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°ā§āĻ¨ āĻ‡āĻŽā§‡āĻ˛ API -> āĻ‡āĻ¨ā§āĻŸāĻŋāĻ—ā§āĻ°ā§‡āĻļāĻ¨ āĻ—āĻžāĻ‡āĻĄ, āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĒā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ - āĻ“āĻ¯āĻŧā§‡āĻŦ āĻāĻĒāĻŋāĻ†āĻ‡ ĐŊĐ°ĐļиĐŧĐ°ĐĩĐŧ āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¨. āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ›āĻŦāĻŋāĻ° āĻŽāĻ¤:

āĻ‡āĻ¯āĻŧāĻžāĻ¨āĻĄā§‡āĻ•ā§āĻ¸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŽā§‡āĻ˛ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻŋ 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨