Как отправить файл PDF в виде вложения в клиенте sendgrid node.js v3 - PullRequest
0 голосов
/ 27 июня 2018

Я использую клиент v3 node.js для отправки электронного письма. Теперь я хочу отправить вложение PDF с электронной почтой. Я просмотрел документацию по API. Но я нигде не нашел, как это сделать.

Я использую следующий код для отправки электронного письма.

const msg = {
        to: process.env.EMAIL_ID,
        from: process.env.ALERT_EMAIL_ID,
        subject: subjectText,
        text: info
    };

    sgMail.send(msg);

1 Ответ

0 голосов
/ 26 января 2019

Допустим, ваш PDF находится в S3.

Получите ваш файл из S3

const pdfFile = await s3
       .getObject({
         Bucket: PDF_BUCKET_NAME,
         Key: `flight-${fileName}.pdf`,
       })
       .promise();

Как только у вас есть файл

const base64data = pdfFile.Body.toString('base64');

const data = {
        from: 'text@example.in',
        to: user.emailId,
        subject: 'Your ticket for flight PNR XYSSA1 from DEL-BLR',
        html: `Please find attached your ticket
            <br><br>Regards<br>
            Team Example`,
        attachments: [
          { content: base64data, filename: 'flight-ticket', type: 'application/pdf', disposition: 'attachment' },
        ],
      };

await sgMail.send(data);

Если у вас есть файл в файловой системе, просто возьмите буфер из fs.readFile, преобразуйте его в base64, как показано выше, и повторите шаги, и все будет хорошо.

...