How to attach file to an email with nodemailer
email, node.js, nodemailer
Solution
Include in the var mailOption the key attachments, as follow:
var mailOptions = {
...
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/andris9/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='
}
]}
Choose the option that adjust to your needs.
Link:Nodemailer Repository GitHub
Good Luck!!
Problem
I have code that send email with nodemailer in nodejs but I want to attach file to an email but I can't find way to do that I search on net but I could't find something useful.Is there any way that I can attach files to with that or any resource that can help me to attach file with nodemailer? ``` var nodemailer = require('nodemailer'); var events = require('events'); var check =1; var events = new events.EventEmitter(); var smtpTransport = nodemailer.createTransport("SMTP",{ service: "gmail", auth: { user: "example@gmail.com", pass: "pass" } }); function inputmail(){ ///////Email const from = 'example<example@gmail.com>'; const to = 'example@yahoo.com'; const subject = 'example'; const text = 'example email'; const html = '<b>example email</b>'; var mailOption = { from: from, to: to, subject: subject, text: text, html: html } return mailOption; } function send(){ smtpTransport.sendMail(inputmail(),function(err,success){ if(err){ events.emit('error', err); } if(success){ events.emit('success', success); } }); } /////////////////////////////////// send(); events.on("error", function(err){ console.log("Mail not send"); if(check<10) send(); check++; }); events.on("success", function(success){ console.log("Mail send"); }); ```