Sendgrid multipart / alternative image from base64

I cannot get Sendgrid (using node.js) to send an email with an embedded base64 image in html. I think I'm pretty close ...

var base64img='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAAFXCAYAAABeLtDdAAAgAElEQVR4Xu19CXhURdb2ISsJgSQ';//shortened version sendgrid.send({ to : ' address1@gmail.com ', from : ' address2@gmail.com ', subject : 'email with image from base64 data', headers:{ 'Content-Type': 'multipart/alternative; boundary="imagebase64"'+ '--imagebase64'+ 'Content-Type: image/png; name="base64.png"'+ 'Content-Disposition: inline; filename="base64.png"'+ 'Content-Transfer-Encoding: base64'+ 'Content-ID: <0123456789>'+ 'Content-Location: base64.png'+ base64img+ '--imagebase64' }, html : '<img src="cid:0123456789"/>' }); 

Can someone help as I cannot find an example of closure in sendgrid or google docs

+4
source share
1 answer

FIXED!

  var base64img='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQgAAAFXCAYAAABeLtDdAAAgAElEQVR4Xu19CXhURdb2ISsJgSQ';//shortened version var data=base64img.replace(/^data:image\/\w+;base64,/,""); var buffer=new Buffer(data,'base64'); fs.writeFile('/home/engine/public_html/img/base64img.png',buffer,function(err){ fs.readFile('public_html/img/base64img.png',function(err,data){ sendgrid.send({ to : ' address11@gmail.com ', from : ' address2@gmail.com ', subject : 'email with image from base64 data', files : [{filename:'base64.png',content:data,cid:'1234567890'}], html : '<img src="cid:1234567890"/>' }, function(success,message){ if(!success){console.log(message);} else{ console.log('sent'); fs.unlink('public_html/img/base64img.png'); } });});}); 
+8
source

Source: https://habr.com/ru/post/1492491/


All Articles