I am following the approach used in the nodemailer community site but I cannot seem to get it to work as I am getting the error
Failed to send email { Error: ENOENT: no such file or directory, open
'./rello-logo-full-svg.svg'
errno: -2,
code: 'ESTREAM',
syscall: 'open',
path: './rello-logo-full-svg.svg',
command: 'API' }
The nodemailer options are as follows
let mailOptions = {
from: '<from_email>',
to: to_email_address.toString(),
subject: 'Subject',
text: 'Hello world', // plain text body
attachments: [{
filename: 'rello-logo-full-svg.svg',
path: './rello-logo-full-svg.svg',
cid: 'unique@cid'
}],
html: emailBody
};
And in the emailBody variable I have a template string with an image tag line like so
<img style="width:250px;" cid:unique@cid>
Do I maybe need to set the static assets for express or what, the image file is in the same folder as the file that has the above code, any help is appreciated
Responding here in case anyone else encounters this! The __dirname
above was really helpful, but this is my code to actually see the image embedded in the email
My img tag:
<img src="cid:logo">
My attachments snippet:
attachments: [{
filename: 'Logo.png',
path: __dirname +'/folder/Logo.png',
cid: 'logo' //my mistake was putting "cid:logo@cid" here!
}]