Google Doc转HTML邮件格式莫名丢失,求助排查解决
问题排查与修复方案
针对Google Doc转HTML邮件格式丢失的问题,即使恢复原代码仍无法解决,可尝试以下步骤:
- 确保文档完全保存:在导出HTML前显式调用
doc.saveAndClose(),避免文档处于未提交保存状态,导致导出的HTML不完整。 - 修复导出URL格式:原代码中的导出URL包含多余空格,会导致请求解析异常,需清理空格保证URL格式正确。
- 强制刷新权限令牌:OAuth令牌缓存可能导致导出请求权限不足,可重新运行脚本并完成授权,确保令牌为最新状态。
修改后的函数代码:
function sendEmail() { var contactEmail = 'MY_EMAIL'; var emailSubject = 'test test'; var doc = DocumentApp.openById('DOC_ID'); // 确保文档保存并关闭 doc.saveAndClose(); // 重新打开文档避免对象失效 doc = DocumentApp.openById('DOC_ID'); // 清理URL中的多余空格 var url = "https://docs.google.com/feeds/download/documents/export/Export?exportFormat=html&id=" + doc.getId(); var html = UrlFetchApp.fetch(url, { headers: { authorization: "Bearer " + ScriptApp.getOAuthToken() } }).getContentText(); var body = doc.getBody().getText(); MailApp.sendEmail(contactEmail, emailSubject, body, { htmlBody: html }); }
额外提示:
- 若问题仍存在,可复制文档内容到新空白Google Doc中,用新文档ID测试,排除原文档格式损坏问题。
- 避免在其他函数中对同一文档进行未正确收尾的操作(如打开后未关闭),防止文档锁定或状态异常。
内容的提问来源于stack exchange,提问作者Adam Braddock
相关产品推荐
相关产品推荐

