Как встроить изображение в html почту в Node.js с помощью SendGrid - PullRequest
0 голосов
/ 05 октября 2018

Я хочу отправить HTML-сообщение с некоторыми изображениями.
Я использую библиотеку с именем 'sendgrid-nodejs'.
Однако я не могу этого сделать и найти какую-либо документацию, связанную с этим.

Мой код.

const fs = require('fs');

function base64_encode(file) {
  var bitmap = fs.readFileSync(file);
  return new Buffer(bitmap).toString('base64');
};


const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
  to: 'to address',
  from: 'from address',
  subject: 'subject',
  html: '<strong>Some Text</strong><img src="cid:12345" alt="test image" />',
  files: [
    {
      filename: 'test image',
      contentType: 'image/jpeg',
      cid: '12345',
      content: base64_encode('test.jpg')
    }
  ]
};

try {
  sgMail.send(msg)
} catch(err) {
  console.log(err)
}

Если вам нужна дополнительная информация для решения этой проблемы.Пожалуйста, скажите мне.Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2019

Вам необходимо добавить disposition: inline в ваше вложение.

const msg = {
  to: 'to address',
  from: 'from address',
  subject: 'subject',
  html: '<strong>Some Text</strong><img src="cid:12345" alt="test image" />',
  files: [
    {
      filename: 'test image',
      contentType: 'image/jpeg',
      cid: '12345',
      content: base64_encode('test.jpg'),
      disposition: 'inline'
    }
  ]
};
...