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

如何让formatDate与sendEmail生成的邮件内容保持单行显示?

邮件正文意外换行的解决方法

问题场景

以下是我的脚本片段:

var formail = Utilities.formatDate(duedate, "yyyy/ MM/ dd");
MailApp.sendEmail(
  docowner, // 메일 수신자
  "Document Integration Committee의 평가 due date", 
  "hello.\n" + place + code + 'of duedate' +formail + "is an day before" +before+"days. \nPlease check it."
);

发送邮件后,正文里的place + code + 'of duedate' +formail + "is an day before" +before+"days."部分被意外拆分为两行:

New york 123 of duedate
is an day before 7 days.

期望效果是这部分内容在同一行显示:

New york 123 of duedate 2022/07/25 is an day before 7 days.

尝试用\b转义无效。

解决步骤

  1. 修正Utilities.formatDate的调用参数
    Utilities.formatDate的正确参数顺序是(日期对象, 时区字符串, 格式字符串),你当前错误地将格式字符串作为时区参数传入,这会导致formail生成异常内容(甚至可能包含隐藏换行)。修改为:
// 使用脚本所在时区,或者指定具体时区如"Asia/Seoul"
var formail = Utilities.formatDate(duedate, Session.getScriptTimeZone(), "yyyy/MM/dd");

同时去掉格式字符串里的空格,避免生成带多余空格的日期。

  1. 清理变量中的隐藏空白字符
    检查place、code变量是否从外部读取时携带了换行符或多余空白,用trim()方法去除首尾空白:
place = place.trim();
code = code.trim();
  1. 优化字符串拼接格式
    拼接时给各部分添加空格,确保内容连贯且无意外换行:
"hello.\n" + place + " " + code + " of duedate " + formail + " is an day before " + before + " days.\nPlease check it."

内容的提问来源于stack exchange,提问作者김다빈

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:18:16