Sendgrid-nodejs: рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рд╕рд┐рддре░ 2017  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sendgrid/sendgrid-nodejs

рд╕рд╛рд░рд╛рдВрд╢ рдЬрд╛рд░реА рдХрд░реЛ

рдореИрдВрдиреЗ sendgrid 2.0.0 рд╕реЗ @sendgrid/mail 6.1.2 , рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutions: {
      "%DISPLAY_NAME%": 'Test'
    }
  }
  return sendgrid.send(msg)
}

рддрдХрдиреАрдХреА рдЬрд╛рдирдХрд╛рд░реА:

  • sendgrid-nodejs рд╕рдВрд╕реНрдХрд░рдг: рдорд╛рд╕реНрдЯрд░ (рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдмрджреНрдз: [рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрдЦреНрдпрд╛])
  • Node.js рд╕рдВрд╕реНрдХрд░рдг: 8.4.0
help wanted question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рд╕рд╛рдЗрдбрдиреАрд╣реЗрдВрджреНрд░ ,

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЖрднрд╛рд░ рдХреЗ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ

SendGrid рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

рд╕рднреА 17 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрдХрд╛рд░ @sydneyhenrard ,

рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ substitutionWrappers рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ % ред рддрдм substitutions рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ, рдЖрдк % рд╡рд░реНрдг рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

рдХреНрдпрд╛ рдЪрд░ рдкрд░ рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИ?

SendgridService.prototype.sendTestEmail = function () {
  var text = 'Hi %DISPLAY_NAME% - %displayname%\n\n'
  const msg = {
    to: '[email protected]',
    subject: 'Test Email',
    from: {email: '[email protected]', name: 'Test'},
    text: text,
    substitutionWrappers: ['%', '%'],
    substitutions: {
      DISPLAY_NAME: 'Test',
      displayname: 'Test'
    }
  }
  return sendgrid.send(msg)
}

рдкреНрд░рд╛рдкреНрдд рдИрдореЗрд▓:

Hi %DISPLAY_NAME% тАУ Test

рдирдорд╕реНрдХрд╛рд░ @sydneyhenrard ,

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджрд┐рдП рдЧрдП n рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди 0 рдареАрдХ рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

@thinkingsouble рдпрд╣ рдЖрдкрдХреЗ рдЕрдВрдд рдпрд╛ рдиреЛрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ?

рдпрд╣ рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИред рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд▓реЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рдореИрдВ camelCase рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди 0 рдХреЗ рд▓рд┐рдП рднреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж @sydneyhenrard ,

рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рдЬрд▓реНрджреА рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП :)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рджреЗрдВред

442 рдХреЛ рдЗрд╕ ЁЯСН рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

V6.1.3 рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд▓рдп, рдзрдиреНрдпрд╡рд╛рдж @adamreisnz!

@ рд╕рд╛рдЗрдбрдиреАрд╣реЗрдВрджреНрд░ ,

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЖрднрд╛рд░ рдХреЗ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ

SendGrid рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

01/2018 рдореЗрдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдпреЛрдЧреЛрдВ рдХреЛ% companyname% рд╕реЗ% company_name% рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХрд▓ рд╢рдмреНрдж рдЪрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рдереЗред рддреБрд░рдВрдд рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

Hi @greglbyv ,

рдЖрдк рдПрд╕рдбреАрдХреЗ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

рдХреНрдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рд╡рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрдм рдореИрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╣рд╛рде рд╕реЗ рдмрдирд╛рдКрдВрдЧрд╛, рдЬреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡реЗ рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

@ рдХреЗрд╢ рд╡рд┐рдиреНрдпрд╛рд╕ ,

рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред 1) рдЖрдк рдХрд┐рд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? 2) рдЖрдк рдирдореВрдирд╛ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рджреЛрдиреЛрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ HTML рдФрд░ Node.js рдХреЛрдбред рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,

рдПрд▓реНрдорд░

@ рд╕реЛрдЪ-рд╕рдордЭрдХрд░

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

рд╕рднреА рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

@thinkingsouble рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ, рдХреИрдорд▓рдХреЗрд╕, рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдЪрд░ рдЕрднреА рднреА рдЖрдмрд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬрдм рдореИрдВ Sendgrid UI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЪрд░ рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдлрд╛рдпрд░рдмреЗрд╕ рдХреНрд▓рд╛рдЙрдб рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ

рдореИрдВ "@ sendgrid / mail" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: "^ 6.3.1"

const msgbody = {
          to: userData.email,
          from: '[email protected]',
          subject: 'Registration Complete',
          templateId: 'd-dffc1e7c8a4a4ed5a4384eded1701f65',
          substitutionWrappers: ['{{', '}}'],
          substitutions: {
            first_name: userData.firstName
          }
        }
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mikemaccana picture mikemaccana  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Chrischuck picture Chrischuck  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amlcodes picture amlcodes  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

polkhovsky picture polkhovsky  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

murphman300 picture murphman300  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ