рдпреИрдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрд▓ рднреЗрдЬрддреЗ рд╣реИрдВ

Yandex рд╕реБрд╡рд┐рдзрд╛рдПрдБ

рдЖрдЬ рд╣рдо рддрдерд╛рдХрдерд┐рдд рдмрдирд╛рдПрдВрдЧреЗ рдпреИрдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди ( рдпреИрдВрдбреЗрдХреНрд╕ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╛рдо), рдЬреЛ SendGrid рдореЗрд▓рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЬрд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд╢рд╛рдВрддрд┐рдкреВрд░реНрд╡рдХ рд╕реЛ рд░рд╣реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ "рд╕рд╛рдмреБрди" рднреЗрдЬреЗрдЧрд╛ ( рдмрд╕ рдордЬрд╛рдХ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рд╕реНрдкреИрдо рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИрдВ)ред

рдореИрдВ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рд╡рд┐рд░реЛрдзреА (рд▓реЗрдХрд┐рди рдХрдЯреНрдЯрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛), рдФрд░ рддрдерд╛рдХрдерд┐рдд рдХрд╛ рд╕рдорд░реНрдердХ рднреА рд╣реВрдВ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд (рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд) рд╕рдорд╛рдзрд╛рди, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ) рдХреИрд╕реЗ рдкрд╕рдВрдж рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ - рдЙрд╕ рд╕рдордп рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рд╡реЗ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдп рдПрдХ рдФрд░ рдорд╛рдорд▓рд╛ рд╣реИред рдХреЛрдИ рдореЗрд░реЗ рдмрд┐рдирд╛ рдЙрдирдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реВрдВред рдЕрдХреНрдЯреВрдмрд░ 2019 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпреИрдВрдбреЗрдХреНрд╕ рдиреЗ рдЕрдкрдирд╛ рдпреИрдВрдбреЗрдХреНрд╕ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкреЗрд╢ рдХрд┐рдпрд╛ - рдпрд╣ рд░реВрд╕реА рд╕рдВрдШ рдореЗрдВ рдкрд╣рд▓рд╛ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ - рдРрд▓рд┐рд╕ рдХреЗ рдХреМрд╢рд▓ рдХреЗ рд▓рд┐рдП рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рддрдм рд╕реЗ рдореЗрд░реА рдкрд░рд┐рдзреАрдп рджреГрд╖реНрдЯрд┐ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд▓рд┐рд╕ рд░рд┐рдореЗрдореНрдмрд░ рдПрдВрдб рдлреЙрд░рдЧреЗрдЯ рд╕реНрдХрд┐рд▓, рдЬреЛ, рдпрд╛рдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд╛рдорд╛рди рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднреБрдЧрддрд╛рди рдкреНрд░рдгрд╛рд▓реА ( Yandex.Money рдХреЗ рд╕рд╛рде рднреНрд░рдо рдХреА рдбрд┐рдЧреНрд░реА рдХреЗ рд╕рдорд╛рди) рднреБрдЧрддрд╛рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдкрддреЗ рдкрд░ рднреЗрдЬрддреА рд╣реИ (рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпреИрдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛) HTTP рдЕрдиреБрд░реЛрдз рдЬрд┐рд╕рдореЗрдВ рднреБрдЧрддрд╛рди рд╡рд┐рд╡рд░рдг, рдЬреИрд╕реЗ рдХрд┐ рд░рд╛рд╢рд┐, рдирд╛рдо, рдлреЛрди рдФрд░ рднреБрдЧрддрд╛рдирдХрд░реНрддрд╛ рдИрдореЗрд▓ред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдЪрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдХрд░реЗрдВ, рднреБрдЧрддрд╛рди рдХреА рд░рд╕реАрдж рдФрд░ рдЖрдЧреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрд╕рдПрдордПрд╕ рдФрд░ рдИрдореЗрд▓ рднреЗрдЬреЗрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ microservice ред

рдРрд▓рд┐рд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдлрд╛рдпрд░рд╕реНрдЯрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдпрд╛рдж рдХрд░рддрд╛ рд╣реИ (рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╣рдо рдПрдХ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ - рдпрд╛рдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ )ред рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ Yandex.Money рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЕрдм рд╣рдо рдХреЗрд╡рд▓ рдкрддреНрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

1. SendGrid рдореЗрдВ рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ


рдЯрд┐рдкреНрдкрдгреА
SendGrid рд╕рд┐рд░реНрдл рдореЗрд░реА рдкрд╕рдВрдж рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рдПрдХ рд╣реИ Node.js. рдХреЗ рд▓рд┐рдП рдПрдХ рддреИрдпрд╛рд░ рдПрд╕рдбреАрдХреЗ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ред рдЖрдк рдХреЛрдИ рдЕрдиреНрдп рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рд╕реЗрд╡рд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдЦрд╛рддрд╛ рдкрдВрдЬреАрдХрд░рдг рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣рд╛рдВ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рднрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдЬрд╛рдПрдВ , рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреИрдирд▓ рдореЗрдВ рдИрдореЗрд▓ рдПрдкреАрдЖрдИ -> рдПрдХреАрдХрд░рдг рдЧрд╛рдЗрдб , рдФрд░ рдореБрдЦреНрдп рдкреИрдирд▓ - рд╡реЗрдм рдПрдкреАрдЖрдИ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЪреБрдиреЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЪрд┐рддреНрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реИ:

SendGrid рдореЗрдВ рдХрдВрд╕реЛрд▓

рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, Node.js рдЪреБрдиреЗрдВ:

SendGrid рдореЗрдВ Node.js рдЪреБрдирдирд╛

рдЕрдЧрд▓рд╛, рд╣рдо рдЕрдкрдиреА рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ (рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХреЛрдб рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ; рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЕрд╕рдВрдЧрдд рдбреЗрдореЛ-рдПрдкреАрдЖрдИ-рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ) рдФрд░ рдХреБрдВрдЬреА рдмрдЯрди рдмрдирд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

SendGrid рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг API рдмрдирд╛рдирд╛

рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ, рд╣рдо рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЧрд╣рд░реА рдЧреЛрдкрдиреАрдпрддрд╛ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡реЗрд░рд┐рдлрд╝рд┐рдЯреА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рджрдмрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

SendGrid рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз

2. рдХреЛрдб рд▓реЗрдЦрди


рдФрд░ рдХреЛрдб рд╣реА, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ - 22 рд▓рд╛рдЗрдиреЗрдВ!

рдХреЛрдб

# 8 рдкрдВрдХреНрддрд┐ рдореЗрдВ , рдореЗрд░рд╛ рдореЗрд▓ рдПрдХ рд╣рд╛рд░реНрдбрдХреЛрдб рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП рд╢рд░реНрдореАрд▓реА рд░реВрдк рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) - рдЖрдк рдЕрдкрдирд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рд╣рдо рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ POST ( "Content-Type": "application/json" ) рд╡рд┐рдзрд┐ рдИрдореЗрд▓ рдХреНрд╖реЗрддреНрд░ (рд╕рдВрдкрддреНрддрд┐) рдкрд╛рд╕ рдХрд░рддреА рд╣реИ:
 { ... "email": "user@example.com", ... } 

рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдореВрд▓реНрдп рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 const body = JSON.parse(event.body); const email = body.email; 

рдФрд░ рдЕрдЧрд░ рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝реАрд▓реНрдб рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (рд╕рдВрдЧреНрд░рд╣):
 { ... "user": { ... "email": "user@example.com", ... }, ... } 

рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдореВрд▓реНрдп рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
 const { user } = event; const email = user.email; 

рдпрджрд┐ URL рдореЗрдВ рдореЗрд▓ рдкрддреЗ рдХреЛ рдлрд╝рдВрдХреНрд╢рди (рддрдерд╛рдХрдерд┐рдд URL рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ ) рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: https://functions.yandexcloud.net/123abc? email=user@example.com https://functions.yandexcloud.net/123abc? email=user@example.com
рдИрдореЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рд╣реЛрдЧрд╛:
 const email = event.queryStringParameters.email; 

рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИ, рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдпреИрдВрдбреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдореЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 module.exports.handler = async function (event) { return { 'statusCode': 200, 'headers': { 'Content-Type': 'application/json; charset=utf-8' }, 'body': JSON.stringify(event), 'isBase64Encoded': false }; }; 

рдЕрдзрд┐рдХ (рд▓реЗрдХрд┐рди рдХрдо рд╕рдордЭрджрд╛рд░) рдпрд╣ рдпрд╣рд╛рдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ ред

рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд▓рд░ ), рдЙрд╕ рдкрд░ рдЬрд╛рдПрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ, рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 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 рдлрд╝рд╛рдЗрд▓ рдореЗрдВ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдХреЗ) рдПрдХ рдЬреЛрдбрд╝реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ - рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХрд╛ рдирд╛рдо / рдорд╛рди, рдЬреЛред рд╣рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ SendGrid рдХрдВрд╕реЛрд▓ рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ:
SENDGRID_API_KEY = рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдЧреБрдкреНрдд-рдкреНрд░реЗрд╖рд┐рдд-рдПрдкрд┐-рдХреБрдВрдЬреА

рдФрд░ рдпрджрд┐ рдЖрдк рдХрдо рдХрд╛рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ, рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

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

Index.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓рд╛рдЗрди # 8 рдкрд░, рдореЗрд▓ рдмрджрд▓реЗрдВ; рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ .env рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХрд╛ рдирд╛рдо / рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдереЛрдбрд╝рд╛ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

3. рддреИрдирд╛рдд


рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдФрд░ рдпреИрдВрдбреЗрдХреНрд╕ -рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рд▓реЗрдЦ рдРрд▓рд┐рд╕ рдореЗрдВ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ - рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рджреЗрд╢ рдореЗрдВ рдЕрдЬреНрдЮрд╛рдиреА рдХреЛ рднреЗрдЬрддрд╛ рд╣реВрдВ, рдФрд░ рдмрд╛рдХреА рд╕рднреА (рдмрд╛рдХреА рдФрд░ рдЬреЛ рд▓реЛрдЧ рд▓реМрдЯрддреЗ рд╣реИрдВ) - рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЫреЛрдЯреА рд╕реА рдХреЙрдорд┐рдХ (рдпрд╛рдиреА) рдИред рдЪрд┐рддреНрд░реЛрдВ рдФрд░ рдкрд╛рда рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛)ред

рд╣рдо рдПрдХ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд▓рд░.рдЬрд╝рд┐рдк рдХрд╣рддреЗ рд╣реИрдВ ), рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдФрд░ .env, index.js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ - рдпреЗ рд╕рднреА рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рд╣реИрдВ:

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрд░реНрдХрд╛рдЗрд╡

рд╣рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ ... рд╕рд╣реА рдврдВрдЧ рд╕реЗ - рдореЗрд▓рд░ , рдмрд╛рдПрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдиреВ рдореЗрдВ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рднрд░реЗрдВ, рдФрд░ рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдЯреИрдм рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдореЗрд▓рд░ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВред рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣:

рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рдФрд░ рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рдПрдкреАрдЖрдИ-рдХреБрдВрдЬреА рдХреЛ рд╕реАрдзреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ .env рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдФрд░ рдбреЙрдЯреЗрдирд╡ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рд╕рдм рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реВрдВред рд╡рд╣ рд╣реИ - рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ!

рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░

рдЕрдм рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдПрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд▓реЛрдХрди рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВрдЧреЗред рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХреЗрдВред

рдлрд╝реАрдЪрд░ рдЕрд╡рд▓реЛрдХрди

рдХреЙрд▓ рд▓рд┐рдВрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдиреАрд▓рд╛ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ? рдЙрд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдПрдХ рдЦрд╛рд▓реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреА ... рд▓реЗрдХрд┐рди рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ - рдореБрдЭреЗ рдПрдХ рдкрддреНрд░ рдорд┐рд▓рд╛:

рдИ-рдореЗрд▓

рдЕрдм рдЖрдк SendGrid рдХрдВрд╕реЛрд▓ рдкрд░ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рддреНрдпрд╛рдкрди рдПрдХреАрдХрд░рдг рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдиреЗ рдЪреИрдирд▓реЛрдВ рдкрд░ рд╕рдм рдХреБрдЫ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдРрд╕реА рд╕реНрдХреНрд░реАрди рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдП:

рдПрдХреАрдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐

рддреЛ, рджреЛрд╕реНрддреЛрдВ (рдФрд░ рд▓рдбрд╝рдХрд┐рдпреЛрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ) - рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИ! рдЕрдзрд┐рдХ рд▓реЗрдЦ рд╣реЛрдВрдЧреЗред рдпрд╣ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддрд╛рдХрд┐ рд╕рджрд╕реНрдпрддрд╛ рди рдЫреВрдЯреЗред рдЖрдк рдпрд╣рд╛рдВ рдпрд╛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред

4. рдбреЛрдирдЯреНрд╕


Donat

Source: https://habr.com/ru/post/hi440374/


All Articles