代码之家  ›  专栏  ›  技术社区  ›  mangusbrother

通过nodejs NodeEmailer后端从pdfkit发送PDF

  •  0
  • mangusbrother  · 技术社区  · 6 年前

    Sending a PDF created dynamically as an attachment using PDFKit in a nodejs application

    主要区别在于我是从后端发送此电子邮件,而不是从浏览器发送。

    还要注意的是,生成的文件经过了良好的genreate处理,因此将其传递到电子邮件可能会有问题。

    const Email = require('email-templates');
    const PdfKit = require('pdfkit');
    const SVGToPDF = require('svg-to-pdfkit');
    const fs = require('fs');
    
    const service =  new Email({
      message: {
        from: 'aaron.test@gmail.com'
      },
      send: true
      transport: require('../config/smtp.json') // my smtp config. Works without attachment
    });
    
    function generatePdfAndSend() {
     var doc = new PdfKit();
    
        const stream = doc.pipe(fs.createWriteStream("output.pdf"));
    
        doc.font('backend/fonts/MADE Canvas Regular PERSONAL USE.otf')
          .fontSize(25)
          .text('sample text', 100, 100);
    
        fs.readFile('backend/images/Happy Easter 5.svg', 'utf8', (err, contents) => {
          SVGToPDF(doc, contents, 100, 200, {});
          doc.end();
    stream.on('finish', function() {
              sendEmail("templateName", "myEmail", doc);
            });
    
        });
    }
    
    
    function sendEmail(template, to, attachment) {
        service.send({
        template: template,
        message: {
          to: to,
          attachments: [
            {
              filename: 'text1.pdf',
              content: attachment,
              contentType: 'application/pdf'
            }
          ]
        },
        locals: vars
    
      })
        .then(console.log).catch(console.error);
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Classified    6 年前

    我在文档中看不到任何允许对象作为附件传递的内容。

    https://community.nodemailer.com/using-attachments/

        2
  •  0
  •   Ghazaleh Javaheri    5 年前

    我使用下面的方法,注意路径是保存的pdf的路径,附件是附件对象的数组,它就像一个符咒

     attachments:[{
                filename:'reports.pdf',
                path: __dirname+'/files/output.pdf'//,
                //contentType: 'application/pdf'
            }]
    
    推荐文章