Links in emails sent through the Gmail API are being improperly encoded. For example,
<img src="http://127.0.0.1:4000/nmsrv?lfjh=e842g56snj4o6x83h2geyu8fr">
shows up in the resulting email as
<img src=3D"http://127.0.0.1:4000/nmsrv?lfjh=3D=
e842g56snj4o6x83h2geyu8fr">
What would be the right method (see method used in this case below) to encode text before passing on to the Nodejs Gmail API in order to have urls properly encoded?
let gmail = require(googleapis).gmail("v1")
let email = [];
email.push('To: ' + receipient);
email.push('Subject: ' + subject);
email.push('Content-type: text/html;charset=UTF-8');
email.push('MIME-Version: 1.0');
email.push('');
email.push(message)
email = email.join('\r\n').trim();
email = Buffer.from(email).toString('base64').replace(/\+/g, '-').replace(/\//g, '_');
gmail.users.messages.send({
'userId': 'me',
'auth': oauth2Client,
'resource': {
'raw': email
}
}, function(err, response){
if(err){return reject(err); } // stop processing if there is an error
return resolve(response);
})