【问题标题】:gmail api send email using content in htmlgmail api使用html中的内容发送电子邮件
【发布时间】:2017-01-25 04:28:20
【问题描述】:

我正在使用 gmail api 发送电子邮件。以下是我的代码

function sendEmail(auth, from, to, subject, content) {

 var encodedEmail = new Buffer(
   'From: ' + from + '\r\n' +
   'To: ' + to + '\r\n' +
   'Subject: ' + subject + '\r\n\r\n' +

   content 
 ).toString('base64').replace(/\+/g, '-').replace(/\//g, '_');

 var gmail = google.gmail('v1');
 var request = gmail.users.messages.send({
   auth: auth,
   userId: 'me',
   resource: {
     raw: encodedEmail
   }
 });
};

但这种情况下的内容应该是纯文本。问题是我想以 HTML 格式传递“内容”。关于如何解决这个问题的任何建议?

【问题讨论】:

    标签: javascript node.js gmail-api


    【解决方案1】:

    您必须在消息中提供content type,否则它将默认为您提到的plain/text。只需添加一个带有值text/html 的Content-Type-header:

    From: sender@gmail.com
    To: receiver@gmail.com
    Subject: Foo bar
    Content-Type: text/html; charset=UTF-8
    
    <b> This is the content of the email </b>
    

    【讨论】:

    • Tholle... 内容类型:文本/html; charset=UTF-8 正在对内容进行编码,但我注意到主题没有被编码。如果主题有一个像“português”这样的词,它会显示“português”你知道我如何告诉 gmail api 将主题编码为 UTF-8 吗?
    • This blog post 解释它。 var encodedSubject = '=?utf-8?B?' + btoa(subject) + '?=';
    猜你喜欢
    • 2015-01-02
    • 1970-01-01
    • 2018-01-26
    • 2021-09-11
    • 2016-07-19
    • 2012-11-25
    • 2018-05-05
    • 2017-04-14
    • 2019-10-16
    相关资源
    最近更新 更多