Sendgrid-nodejs: рд╣реИрдВрдбрд▓ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рджрд╛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдЪреЗрддрд╛рд╡рдиреА: рддреНрд░реБрдЯрд┐: рдЧрд▓рдд рдЕрдиреБрд░реЛрдз

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sendgrid/sendgrid-nodejs

рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:

(node:1475) UnhandledPromiseRejectionWarning: Error: Bad Request
    at Request.http [as _callback] (node_modules/@sendgrid/client/src/classes/client.js:124:25)
    at Request.self.callback (node_modules/request/request.js:185:22)
    at Request.emit (events.js:182:13)
    at Request.<anonymous> (node_modules/request/request.js:1161:10)
    at Request.emit (events.js:182:13)
    at IncomingMessage.<anonymous> (node_modules/request/request.js:1083:12)
    at Object.onceWrapper (events.js:273:13)
    at IncomingMessage.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1094:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
(node:1475) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1475) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

рдореЗрд░рд╛ рдХреЛрдб рдПрдХ рдиреЗрдХреНрд╕реНрдЯрдЬ рдРрдк рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдФрд░ рдиреЛрдб рдореЗрдВ рд╣реИ:

const express = require('express')
const next = require('next')
const bodyParser = require('body-parser')
const sgMail = require('@sendgrid/mail');

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

sgMail.setApiKey(myKey);

const send = ({ email, name, text }) => {
  const message = {
    to: '[email protected]',
    from: email,
    subject: 'New message from',
    text: text,
  }

  return new Promise((resolve, reject) => {
    sgMail.send(message, (error, info) =>
      error ? reject(error) : resolve(info)
    )
  })
}

app.prepare().then(() => {
  const server = express()

  server.use(bodyParser.json())

  server.get('*', (req, res) => {
    return handle(req, res)
  })

  server.post('/api/contact', (req, res) => {
    const { email, name, message } = req.body
    send(email, name, message)
    res.send('success')
  })

  server.listen(3000, (err) => {
    if (err) throw err
    console.log('> Read on http://localhost:3000')
  })
})
  • Sendgrid-nodejs рд╕рдВрд╕реНрдХрд░рдг: рдорд╛рд╕реНрдЯрд░ (рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдмрджреНрдз: [рдкреНрд░рддрд┐рдмрджреНрдз рд╕рдВрдЦреНрдпрд╛])
    "@sendgrid/mail": "^6.3.1",
  • Node.js рд╕рдВрд╕реНрдХрд░рдг: v10.14.2
unknown or a waiting for feedback non-library issue

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

@ рдПрдбрдмреНрд▓реНрдпреВрдЖрд░14 ,
рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдХрд┐ from рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдПрдХ рдорд╛рдиреНрдп рдИрдореЗрд▓ рд╣реИ

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

рд╣реИрд▓реЛ @ AWR14 ,

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

рдзрдиреНрдпрд╡рд╛рдж!

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

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

@ рдПрдбрдмреНрд▓реНрдпреВрдЖрд░14 ,
рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдХрд┐ from рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдПрдХ рдорд╛рдиреНрдп рдИрдореЗрд▓ рд╣реИ

@hkadyanji , (рдФрд░ рдХреЛрдИ рднреА рд╕рд╛рде рдЖ рд░рд╣рд╛ рд╣реИ) рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рд╕рднреА рдлрд╝реАрд▓реНрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЬрдЧрд╣ рд╣реИ, рддреЛ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ - рдлрд╝реАрд▓реНрдб рдХреЛ "" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕реЗ " " (рдЙрджреНрдзрд░рдг рдХреЗ рдЕрдВрджрд░ рдХрд╛ рд╕реНрдерд╛рди) рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ - рдореБрдЭреЗ рдпрд╣ рдХрд╛рдлреА рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рдЯреВрдЯрдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред :) рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛/рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рд╣реИ, рддреЛ рдореИрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ...

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

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

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

BotFrameworkAdapter.processActivity (): 500 рддреНрд░реБрдЯрд┐ - рддреНрд░реБрдЯрд┐: рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз
(рдиреЛрдб: резренреирекреж) UnhandledPromiseRejectionWarning: рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐: рдЧрд▓рдд рдЕрдиреБрд░реЛрдз

рдореИрдВрдиреЗ рд╡рд╣реА рдЪреЗрддрд╛рд╡рдиреА рджреА, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдЧрд▓рддреА рдереА рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдкреЛ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп text , рдореИрдВрдиреЗ рдЗрд╕реЗ test рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ред

рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдИрдореЗрд▓ рдФрд░ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдорд╛рдиреНрдп рд╣реИрдВред

const msg = {
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Hello world',
  text: 'Hello plain world!',
  html: '<p>Hello HTML world!</p>',
};

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рддреНрд░реБрдЯрд┐ рдЗрд╕рд▓рд┐рдП рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ send api рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐ рдкрдХрдбрд╝ рдореЗрдВ рдирд╣реАрдВ рдЖрдИред

рдФрд░, рддреНрд░реБрдЯрд┐ рдХрд╛рд░рдг to рдФрд░ cc рдореЗрдВ рдХреБрдЫ рдЪреМрд░рд╛рд╣реЗ рд╣реИрдВуАВ

to рдореЗрдВ рджреЛрд╣рд░рд╛рдП рдЧрдП рдИрдореЗрд▓ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ cc рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)

рдпрд╣рд╛рдВ 2 рдореБрджреНрджреЗ рд╣реИрдВ: рдЦрд░рд╛рдм рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдФрд░ рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдареАрдХ рд╕реЗ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░рдирд╛ред рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рджрд╛ рднреЗрдЬреЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХрд╛ рдЬрд╡рд╛рдм рдХрдм рджреЗрдирд╛ рд╣реИ рдпрд╛ async/await ред рдкреВрд░реНрд╡ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдбреАрдмрдЧ рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдЕрдиреБрд░реЛрдз _bad_ рдХреНрдпреЛрдВ рд╣реИред рдореИрдВ рдЙрд╕ рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк send рдХреЙрд▓ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рд╣реИрд▓реЛ @ AWR14 ,

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

рдзрдиреНрдпрд╡рд╛рдж!

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

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

рдЕрдм рдирдпрд╛ рд▓рд┐рдВрдХ рдпрд╣ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/docs/use-cases/success-failure-errors.md;)

рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реБрдВрджрд░ рдЯрд┐рдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рд╕рдордЭрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐ рдХреНрдпрд╛ рд╣реИ! рдереИрдВрдХреНрд╕!

@ рдПрдбрдмреНрд▓реНрдпреВрдЖрд░14 ,
рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдХрд┐ from рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдПрдХ рдорд╛рдиреНрдп рдИрдореЗрд▓ рд╣реИ

рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА, рдЖрдкрдХреЛ рд╕реЗрдВрдбрдЧреНрд░рд┐рдб рдПрдбрдорд┐рди рдХреЗ рдЕрдВрджрд░ рдИрдореЗрд▓ рд╕реНрдЯреЗрдЯрд╕ рдЪреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

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

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

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

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

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

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

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