Gmail API编码会修改电子邮件文本

时间:2017-03-09 08:27:03

标签: javascript node.js gmail base64 gmail-api

通过Gmail API发送的电子邮件中的链接编码不正确。例如,

<img src="http://127.0.0.1:4000/nmsrv?lfjh=e842g56snj4o6x83h2geyu8fr"> 

在结果电子邮件中显示为

<img src=3D"http://127.0.0.1:4000/nmsrv?lfjh=3D=
e842g56snj4o6x83h2geyu8fr">

在传递给Nodejs Gmail API之前对文本进行编码以便正确编码网址的正确方法(请参阅下面这种情况下使用的方法)是什么?

    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);
    })

0 个答案:

没有答案