Sendgrid-nodejs: рдореЗрд▓ рдореЗрдВ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдореЗрдВ 0 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдЬрдире░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sendgrid/sendgrid-nodejs

рдирдорд╕реНрддреЗ,

рдореИрдВ @sendgrid/mail - "^6.3.1" рдФрд░ рдиреЛрдб - 10.14.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдПрдХреНрд╕реЗрд▓ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рд┐рдВрдЧрд▓ рд░реЛ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛ рд╕реЗ рдХрдИ рд░реЛ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ 0 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдЯреИрдЪрдореЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рднреА рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдПрдХреНрд╕реЗрд▓рдЬ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред II рдиреЗ рдмрд╣реБрдд рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рд░рд╣рд╛ .. рдЬрд╣рд╛рдВ рдореИрдВ рдЙрд╕реА рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде-
"
res.setHeader ("рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░", "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
res.setHeader ("рд╕рд╛рдордЧреНрд░реА-рд╡рд┐рд╕реНрдерд╛рдкрди", "рдЕрдиреБрд▓рдЧреНрдирдХ; рдлрд╝рд╛рдЗрд▓ рдирд╛рдо = '" + excelFile.excelOffFile + "'");
workbookFinal.xlsx.write(res).then(() => {
res.end (); });рдПрд╕
"
рдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдб рд╣реИ -
sgMail.send({
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: config.get("mail.defaultAdd"),
рд╕реЗ: рдореЗрд▓ рд╕реЗ рдЬреЛрдбрд╝реЗрдВ,
рд╡рд┐рд╖рдп: "рдПрдХреНрд╕реЗрд▓ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдСрд░реНрдбрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬреЗрдВ",
рдПрдЪрдЯреАрдПрдордПрд▓: <h1>Test Mail</h1> ,
рд╕рдВрд▓рдЧреНрдирдХ: [
{
рд╕рд╛рдордЧреНрд░реА: fs.readFileSync(excelFile.excelOffFilePath, {рдПрдиреНрдХреЛрдбрд┐рдВрдЧ:"base64"}),
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо: excelFile.excelOffFile,
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/vnd.ms-excel"
},
{
рд╕рд╛рдордЧреНрд░реА: fs.readFileSync (excelFile.excelFactFilePath, {рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: "рдмреЗрд╕ 64"}),
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо: excelFile.excelFactFile,
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/vnd.ms-excel"
},
{
рд╕рд╛рдордЧреНрд░реА: fs.readFileSync (excelFile.excelBrFilePath, {рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: "рдмреЗрд╕ 64"}),
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо: excelFile.excelBrFile,
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/vnd.ms-excel"
},
{
рд╕рд╛рдордЧреНрд░реА: fs.readFileSync (excelFile.excelSuFilePath, {рдПрдиреНрдХреЛрдбрд┐рдВрдЧ: "рдмреЗрд╕ 64"}),
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо: excelFile.excelSuFile,
рдЯрд╛рдЗрдк рдХрд░реЗрдВ: "рдПрдкреНрд▓рд┐рдХреЗрд╢рди/vnd.ms-excel"
}
]
})

рдореЗрд▓ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ -
image

рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

unknown or a waiting for feedback non-library issue

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

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛ рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ excelFile.* рдХреЗ рдорд╛рдиреЛрдВ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред рдлрд┐рд░, рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдпрдВ рдмреЗрд╕ 64 рдПрдиреНрдХреЛрдбреЗрдб рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдЙрдкрдХрд░рдг рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

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

рд╣реИрд▓реЛ @ рдПрд▓реНрдорд░

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

рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ "рд╕реА" рдХреЗ рд╕рд╛рде createExcelFile рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдореИрдВ рдХрд╛рд░реНрдпрдкреБрд╕реНрддрд┐рдХрд╛ рд╡рд╛рдкрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВред

exports.getExcelFile = (req, res, next) => {
   const excelFile = {};

   Order.findById(req.params.id).then(order => {
      excelFile.excelOffFile = "Off_" + order.factory + "_" + order._id + ".xls";
      excelFile.excelOffFilePath = path.join("data", "excel", excelFile.excelOffFile);
      excelFile.excelFactFile = "Fact_" + order.factory + "_" + order._id + ".xls";
      excelFile.excelFactFilePath = path.join("data", "excel", excelFile.excelFactFile);
      excelFile.excelBrFile = "Br_" + order.factory + "_" + order._id + ".xls";
      excelFile.excelBrFilePath = path.join("data", "excel", excelFile.excelBrFile);
      excelFile.excelSuFile = "Su_" + order.factory + "_" + order._id + ".xls";
      excelFile.excelSuFilePath = path.join("data", "excel", excelFile.excelSuFile);

      let workbookFinal = createExcelFile(order, "C", excelFile.excelOffFilePath);

      createExcelFile(order, "F", excelFile.excelFactFilePath);
      createExcelFile(order, "B", excelFile.excelBrFilePath);
      createExcelFile(order, "S", excelFile.excelSuFilePath);
sgMail.send({
         to: config.get("mail.defaultAdd"),
         from: defaultMailId,
         subject: "Order with excel attachment send through software ",
         html: `<h1>
         The mail has been sent as trial through program for testing excel file attachement  .
         </h1>
         <h3>
            Office file - ${url.format({ protocol: req.protocol, host: req.get("host"), pathname: "orders/genExcelFile/" + excelFile.excelOffFile })}</br>
            Fact file - ${url.format({ protocol: req.protocol, host: req.get("host"), pathname: "orders/genExcelFile/" + excelFile.excelFactFile })}</br>
            Br file - ${url.format({ protocol: req.protocol, host: req.get("host"), pathname: "orders/genExcelFile/" + excelFile.excelBrFile })}</br>
            Su file - ${url.format({ protocol: req.protocol, host: req.get("host"), pathname: "orders/genExcelFile/" + excelFile.excelSuFile })}</br>
         </h3>
         `,
         attachments: [
            {
               content: fs.readFileSync(path.join(rootDir.rootDir, excelFile.excelOffFilePath), { encoding: "base64" }),
               filename: excelFile.excelOffFile,
            },
            {
               content: fs.readFileSync(excelFile.excelFactFilePath, { encoding: "base64" }),
               filename: excelFile.excelFactFile,
            },
            {
               content: fs.readFileSync(excelFile.excelBrFilePath, { encoding: "base64" }),
               filename: excelFile.excelBrFile,
            },
            {
               content: fs.readFileSync(excelFile.excelSuFilePath, { encoding: "base64" }),
               filename: excelFile.excelSuFile,
            }
         ]
      }).then(result => {
         console.log("mail sent successfully...");
      }).catch(err => console.log(err));

      res.setHeader("Content-Type", "application/vnd.ms-excel");
      res.setHeader("Content-Disposition", "attachment;filename='" + excelFile.excelOffFile + "'");
      workbookFinal.xlsx.write(res).then(() => {
         res.end();
      });

}).catch(err => console.log(err));
};

рд╣реИрд▓реЛ @ рдПрд▓реНрдорд░

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

рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рдЙрдард╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реЗ рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

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

рдкреНрд░рд╕реВрди рдХреБрдорд╛рд░ рдЬрд╛рд▓рд╛рди

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

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

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

Loriot-n picture Loriot-n  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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