Sendgrid-nodejs: рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдЕрдирдкреЗрдХреНрд╖рд┐рдд рддреНрд░реБрдЯрд┐

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

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде 'рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз' рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред

рдирд┐рд╡реЗрджрди

cosnt msg = {
        "to": "[email protected]",
        "from": "[email protected]",
        "subject": "Support Pay Transparency at PayCheck",
        "templateId": "24ae3147-4faa-4380-8613-c5be144f4542",
        "customArgs": {
            "ally_id": "cj6zlh7yd000001qir4r5suuk"
        }
};
sgMail.send(msg)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛

{
        "message": "Bad Request",
        "code": 400,
        "response": {
            "headers": {
                "server": "nginx",
                "date": "Wed, 30 Aug 2017 22:30:41 GMT",
                "content-type": "application/json",
                "content-length": "365",
                "connection": "close",
                "access-control-allow-origin": "https://sendgrid.api-docs.io",
                "access-control-allow-methods": "POST",
                "access-control-allow-headers": "Authorization, Content-Type, On-behalf-of, x-sg-elas-acl",
                "access-control-max-age": "600",
                "x-no-cors-reason": "https://sendgrid.com/docs/Classroom/Basics/API/cors.html"
            },
            "body": {
                "errors": [
                    {
                        "message": "Unless a valid template_id is provided, the content parameter is required. There must be at least one defined content block. We typically suggest both text/plain and text/html blocks are included, but only one block is required.",
                        "field": "content",
                        "help": "http://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html#message.content"
                    }
                ]
            }
        }
    }

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

  • sendgrid-nodejs рд╕рдВрд╕реНрдХрд░рдг: рдорд╛рд╕реНрдЯрд░ (рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдмрджреНрдз: [рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрдЦреНрдпрд╛])
  • Node.js рд╕рдВрд╕реНрдХрд░рдг: 6.10.3
  • AWS рд▓реИрдореНрдмреНрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

screen shot 2017-08-30 at 6 43 57 pm

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

рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╕рдЪрдореБрдЪ рдЕрдкрдирд╛ рджрд┐рдорд╛рдЧ рдЦреЛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рджреЗрд░ рд░рд╛рдд рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЖ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рд╣реИрдВ :-)

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

@ рдиреНрдпреВрд╕рд┐рдирди рдиреНрдпреВ рдиреЛрдб рдЬреЗрдПрд╕ рдореЗрд▓рд░ рдПрдкреАрдЖрдИ рдХреЗрд╕ рдПрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рджреЛрдиреЛрдВ templateId рдпрд╛ template_id рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЗрдПрд╕ рднреВрдорд┐ рдореЗрдВ рдКрдВрдЯ рдХрд╛ рдорд╛рдорд▓рд╛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдкреАрдЖрдИ рд╕реНрд╡рдпрдВ рд╕рд╛рдБрдк рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ

рд╣рд╛рдп @ рдЧреЛрд╕реНрд╕рд┐рдпрди ,

рддреБрдо рднреА рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕рдВрдкрд╛рджрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдВрдд рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде template_id рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВред рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдирдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

@adamreisnz ,

рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЦрд╛рддреЗ рдореЗрдВ рдХреЗрд╡рд▓ рдирдП рдЦрд╛рдХреЗ рд╣реИрдВред

рдореИрдВ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рд╡рд╛рдКрдВрдЧрд╛

рдирд╣реАрдВ, рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рд╣реМрд╕рд▓реЗ рд╕реЗ рдмрдирд╛рдпрд╛, рдЙрд╕реА рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рдореЗрд░реЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд╕рдВрд╕реНрдХрд░рдг v6.1.1 рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдХреЗ) рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпрд╣рд╛рдБ :

// Setup sendgrid api
const sendGridMail = require('@sendGrid/mail');
sendGridMail.setApiKey(process.env.SENDGRID_API_KEY);
sendGridMail.setSubstitutionWrappers('-', '-');

//build object 
var mailOptions = {
    personalizations:[{
      to: '[email protected]',
      substitutions: {'name':'John', 'city':'Denver'}
    }],
    from: '[email protected]',
    reply_to: '[email protected]',
    subject: 'Hello',
    html: 'email text goes here',
    templateId: '13b8f94f-bcae-4ec6-b752-70d6cb59f932'
  };

//send 
sendGridMail.send(mailOptions);

рдЖрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреБрд░рд╛рдирд╛ рдмрдЧ рдкреБрдирд░реБрддреНрдерд╛рди рд╣реИ, рдЬрд╣рд╛рдВ рдПрдкреАрдЖрдИ рдХреЛ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

// Setup sendgrid api
const sendGridMail = require('@sendGrid/mail');
sendGridMail.setApiKey(process.env.SENDGRID_API_KEY);
sendGridMail.setSubstitutionWrappers('-', '-');

//build object 
var mailOptions = {
    to: '[email protected]',
    from: '[email protected]',
    reply_to: '[email protected]',
    subject: 'Hello',
    templateId: '13b8f94f-bcae-4ec6-b752-70d6cb59f932',
    html: ' ',
    substitutions: {
      name: 'Some One',
      city: 'Denver',
    }
  };

//send 
sendGridMail.send(mailOptions);

рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ:

// Setup sendgrid api
const sendGridMail = require('@sendGrid/mail');
sendGridMail.setApiKey(process.env.SENDGRID_API_KEY);
sendGridMail.setSubstitutionWrappers('-', '-');

//build object 
var mailOptions = {
    to: '[email protected]',
    from: '[email protected]',
    reply_to: '[email protected]',
    subject: 'Hello',
    templateId: '13b8f94f-bcae-4ec6-b752-70d6cb59f932',
    substitutions: {
      name: 'Some One',
      city: 'Denver',
    }
  };

//send 
sendGridMail.send(mailOptions);

рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рдБрдЪ рд╣реЛ рд░рд╣реА рд╣реИ ...

рдореБрдЭреЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛ред рдореБрдЭреЗ рдПрдХ _Bad рдЕрдиреБрд░реЛрдз (400) рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ "рдЬрдм рддрдХ рдПрдХ рд╡реИрдз рдЯреЗрдореНрдкрд▓реЗрдЯ_id рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рд╕рд╛рдордЧреНрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирдП HTML рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ..." _ред

sgMail.setApiKey(sgKey);
sgMail.setSubstitutionWrappers('-', '-');
var msg: any = {
  to: email,
  from: '[email protected]',
  templateId: 'xxxxxxx',
  substitutions: {
     verifyUrl: createAccountLink
  }
};
sgMail.send(msg)

рдпрджрд┐ рдореИрдВ рдХрдВрдЯреЗрдВрдЯ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдИрдореЗрд▓ рдХреЛ html рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

sgMail.setApiKey(sgKey);
sgMail.setSubstitutionWrappers('-', '-');
var msg: any = {
  to: email,
  from: '[email protected]',
  content: [{"type":"text/html","value":"0"}],
  templateId: 'xxxxxx',
  substitutions: {
     verifyUrl: createAccountLink
  }
};
sgMail.send(msg)

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ SDK рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЦрд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ html рдФрд░ txt рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡рд╣реА рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред

@thinkingserious рдореИрдВ рддреБрдореНрд╣реЗрдВ рд░рд╣реЗ рд╣реЛрдВ рддреЛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдкреАрдЖрдИ рдбреЙрдХреНрд╕ рдкрдврд╝реЗ рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рдХреНрд╖реЗрддреНрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рдерд╛ред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкреА рд╣реБрдИ рдЯрд┐рдкреНрдкрдгреА рд╣реИ (рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рдХ рд╣реИ!) рдЬреЛ рдореИрдВрдиреЗ рдпрд╛рдж рдХрд┐рдпрд╛:

image

рдореИрдВ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдКрдВрдЧрд╛!

рд╣реЗрд╣реЗ, рдзрдиреНрдпрд╡рд╛рдж рдПрдбрдо!

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

рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╕рдЪрдореБрдЪ рдЕрдкрдирд╛ рджрд┐рдорд╛рдЧ рдЦреЛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рджреЗрд░ рд░рд╛рдд рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдЖ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкрд░ рд╣реИрдВ :-)

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @onesien ,

рдлрд┐рдХреНрд╕ рдХреЛ рдХреЗрд╡рд▓ npm (v6.1.2) рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ @thinkingsouble рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдХреЛрдб рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЕрднреА рднреА рдореБрджреНрджреЛрдВ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рд╕реЗрдВрдбрдЧреНрд░рд┐рдб рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рднреЗрдЬрд╛ рд╣реИред CloudWatch рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдЪреВрдВрдХрд┐ рдпрд╣ рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╣реИ) 202 рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЬреЛ рдИрдореЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ: A message was received from this address by our systems that had errors in the smtpapi header, and cannot be processed. The error detected was: The template id must be a valid template id for your account.

рдореИрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рджреЛрд╕реНрддреЛрдВ? рдореИрдВ Sendgrid рдбреЙрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЭрд╛рд░рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреБрдХрдбрд╝рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдЖрдИрдбреА рдХреИрд╕реЗ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ? рдЬрдм рд▓реИрдореНрдмреНрдбрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ?

рддреЗрдЬреА рд╕реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @cbilliau - рдирд╣реАрдВ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╛рдордиреЗ рдФрд░ рдкреАрдЫреЗ рдХреЗ рдЫреЛрд░ рдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдордЪрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╢рдмреНрджрд╢рдГ рд╣реИ:

const sgMail = require("@sendgrid/mail");
sgMail.setApiKey(
  "XXXXX"
);
sgMail.setSubstitutionWrappers("%", "%"); // Configure the substitution tag wrappers globally
  const msg = {
    to: formFields.toEmail,
    from: formFields.fromEmail,
    subject: "Hello world",
    text: "test",
    html: "<p>test</p>",
    templateId: "be2cc0da-5b2c-428f-8e45-c140f6cfb6eb",
    substitutions: {
      name1: formFields.fromName,
      name2: formFields.fromName,
      date: formFields.date
    }
  };

  sgMail.send(msg);

@tetreault рдЪреЗрдХрдЖрдЙрдЯ рдореЗрд░реЗ рдЙрддреНрддрд░ рдХреЗ рдКрдкрд░, рдореИрдВ рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ content: [{"type":"text/html","value":"0"}], рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЕрдЬреНрдЮрд╛рдд рдХреНрдпреЛрдВред

рдмрд╕ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо @cbilliau рдирд╣реАрдВ рдмрджрд▓рд╛ :(ред рдПрдХ рд╣реА рдИрдореЗрд▓ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЧрдпрд╛:

A message was received from this address by our systems that had errors in the smtpapi header, and cannot be processed. 
The error detected was: The template id must be a valid template id for your account. You provided be2cc0da-5b2c-428f-8e45-c140f6cfb6eb 

рд╡рд╛рд╣ рдореБрдЭреЗ рдПрдХ рд╕реЗрдХрдВрдб @cbilliau рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рдЭреБрдХрдирд╛ just рдореИрдВ рд╕рд┐рд░реНрдл рд╕рд╛рдорд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд╛рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ "рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ" рдХреЗ рддрд╣рдд рдмрдирд╛рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдХ рдЖрдИрдбреА рд╣рдбрд╝рдк рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди "рдЯреНрд░рд╛рдВрдЬреЗрдХреНрд╢рдирд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ" рдХреЗ рддрд╣рдд рдирд╣реАрдВред рдореИрдВ Sendgrid UI рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рдмрд╕ рдЗрд╕ рдПрдХ рд▓реЛрд▓ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВ

рдХреБрд▓ рдЪреЗрд╣рд░рд╛ рд╣рдереЗрд▓реА, рдореЗрд░реЗ рдЕрдВрдд рдкрд░ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдФрд░ рдлрд┐рд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

kk - рдЕрдм рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ content: [{ type: "text/html", value: "0" }] рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЬреЛ @cbilliau рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕