如何用Google Apps Script实现Gmail邮件特定内容格式化?
用Google Apps Script实现Gmail邮件特定内容格式化的两种方案
两种方案都能满足你的特定内容格式化需求,下面分别说明:
方案一:直接用HTML构建格式化邮件
你不需要精通HTML,只要给需要格式化的内容套对应标签就行,完全可以针对局部内容设置样式:
核心思路
用HTML标签包裹需要特殊格式的文本,比如:
- 章节标题:用带内联样式的
<span>标签,设置加粗、下划线、字号13.5pt - 子标题:用带样式的
<span>标签,设置加粗、字号10pt、颜色#990000 - 项目符号:用
<ul>和<li>标签实现
代码示例
function sendFormattedEmail() { const recipient = "example@domain.com"; const subject = "带特定格式的测试邮件"; // 构建HTML格式的邮件正文 const htmlBody = ` <p>这是普通正文内容,无特殊格式</p> <!-- 章节标题:加粗、下划线、13.5pt --> <span style="font-size:13.5pt; font-weight:bold; text-decoration:underline;">这是章节标题</span> <p>章节下的普通内容...</p> <!-- 子标题:加粗、10pt、颜色#990000 --> <span style="font-size:10pt; font-weight:bold; color:#990000;">这是子标题</span> <!-- 项目符号列表 --> <ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul> <p>邮件结尾的普通内容</p> `; // 发送邮件,指定htmlBody参数 GmailApp.sendEmail( recipient, subject, "请启用HTML查看模式以查看格式化内容", // 纯文本备选内容,供不支持HTML的邮箱 { htmlBody: htmlBody } ); }
方案二:从Google Docs复制已做好的格式
如果觉得写HTML麻烦,可以先在Google Docs里排版好所有格式,再通过脚本把内容导出为HTML,直接作为邮件正文:
步骤说明
- 在Google Docs里编辑好邮件内容,设置好章节标题、子标题、项目符号的格式
- 用Apps Script获取文档的HTML内容
- 将获取到的HTML作为邮件的
htmlBody发送
代码示例
function sendEmailFromDocs() { const recipient = "example@domain.com"; const subject = "从Docs复制格式的测试邮件"; const docId = "你的Google Docs文档ID"; // 替换成你的文档ID,从文档URL里获取 // 获取文档的HTML内容 const doc = DocumentApp.openById(docId); const docBody = doc.getBody(); // 导出为HTML(注意:Docs导出的HTML会带一些额外样式,可按需微调) const htmlBody = docBody.getAs('text/html').getDataAsString(); // 发送邮件 GmailApp.sendEmail( recipient, subject, "请启用HTML查看模式以查看格式化内容", { htmlBody: htmlBody } ); }
注意事项
- Docs导出的HTML可能包含一些多余的样式或标签,如果需要精简,可以手动过滤掉不需要的部分
- 确保Docs里的格式完全符合需求,脚本会完整复制所有排版
内容的提问来源于stack exchange,提问作者AnonymousTurtle
相关产品推荐
相关产品推荐

