You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Script创建邮件草稿时如何保留表情符号?

解决Google脚本创建Gmail草稿时表情符号乱码问题

核心问题在于GmailApp.createDraft的纯文本模式对Unicode表情符号的支持有限,改用HTML格式创建草稿就能解决这个问题,具体修改如下:

修改后的代码

messageMap.forEach((msgs, email) => {
    // 将纯文本换行替换为HTML换行标签,保留表情符号
    const htmlBody = `Hi ${firstName}, here are your messages!<br><br>`;
    htmlBody += msgs.map(msg => `${msg}`).join('<br>');
    
    // 使用htmlBody参数创建草稿,Gmail会优先渲染HTML内容
    GmailApp.createDraft(email, "Subject!", "", { htmlBody: htmlBody });
})

补充说明

  1. 不需要额外做UTF-8编码处理,Google Apps Script的字符串本身基于UTF-16,传递给htmlBody参数时会被Gmail正确解析。
  2. 如果需要同时保留纯文本版本作为 fallback,可以在配置对象中同时指定textBody:
    GmailApp.createDraft(email, "Subject!", plainTextBody, { htmlBody: htmlBody });
    
    其中plainTextBody是原有的纯文本内容,不过Gmail会优先显示HTML版本,表情符号在HTML模式下能正常显示。
  3. 确认Spreadsheet中的表情符号本身是正常的——Google Sheets原生支持Unicode表情,读取时不会出现编码问题,乱码主要出在Gmail纯文本草稿的渲染环节。

内容的提问来源于stack exchange,提问作者user30069809

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:42:18