Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send email with attachment with the loopback email datasource

Is it possible to send an attachment with the loopback email datasource?

All I can see in the source documentation are these fields:

  • @property {String} to Email addressee. Required.
  • @property {String} from Email sender address. Required.
  • @property {String} subject Email subject string. Required.
  • @property {String} text Text body of email.
  • @property {String} html HTML body of email.
like image 255
dagda1 Avatar asked Jan 05 '23 18:01

dagda1


1 Answers

From the docs:

Nodemailer: Where to Find Documentation

The email connector is essentially a LoopBack-integrated interface to the nodemailer library. This page gives a usage example; for full documentation of configuration options, refer to the nodemailer documention.

Here's where nodemailer have documented attachments.

Here's an example of different types of attachments in the context of loopback:

app.models.Email.send({
  to: '[email protected]',
  from: '[email protected]',
  subject: 'Email Subject',
  html: '<b>Hello</b>',
  attachments: [
    {   // utf-8 string as an attachment
      filename: 'text1.txt',
      content: 'hello world!'
    },
    {   // binary buffer as an attachment
      filename: 'text2.txt',
      content: new Buffer('hello world!','utf-8')
    },
    {   // file on disk as an attachment
      filename: 'text3.txt',
      path: '/path/to/file.txt' // stream this file
    },
    {   // filename and content type is derived from path
      path: '/path/to/file.txt'
    },
    {   // stream as an attachment
      filename: 'text4.txt',
      content: fs.createReadStream('file.txt')
    },
    {   // define custom content type for the attachment
      filename: 'text.bin',
      content: 'hello world!',
      contentType: 'text/plain'
    },
    {   // use URL as an attachment
      filename: 'license.txt',
      path: 'https://raw.github.com/nodemailer/nodemailer/master/LICENSE'
    },
    {   // encoded string as an attachment
      filename: 'text1.txt',
      content: 'aGVsbG8gd29ybGQh',
      encoding: 'base64'
    },
    {   // data uri as an attachment
      path: 'data:text/plain;base64,aGVsbG8gd29ybGQ='
    },
    {
      // use pregenerated MIME node
      raw: 'Content-Type: text/plain\r\n' +
        'Content-Disposition: attachment;\r\n' +
        '\r\n' +
        'Hello world!'
    }
  ],
}, err => {
  if (err) {
    throw err;
  }
});
like image 53
Farid Nouri Neshat Avatar answered Feb 15 '23 00:02

Farid Nouri Neshat