【发布时间】:2012-05-23 13:21:49
【问题描述】:
使用 Google Apps 脚本,如何在变量中换行以发送邮件?
【问题讨论】:
使用 Google Apps 脚本,如何在变量中换行以发送邮件?
【问题讨论】:
如果您不发送 HTML 格式的消息,请使用“\n”。我个人鄙视 HTML 格式的电子邮件。
【讨论】:
您应该在发送电子邮件的 HTML 部分时使用<br> 标签。
以下是我如何撰写相同电子邮件正文的示例,但 HTML 和纯文本的格式不同。 (不是最好的代码,但希望它能说明这一点)
function onFormSubmit(e) {
var subject = "Subject";
// Collect user data
var name = e.values[0];
var email = e.values[1]; // Where user enters his/her email address
// Generate content - Replace this with what you're composing
var content = [];
content.push("Hi " + name);
content.push("Thanks for submitting the survey!___LINE_BREAK___");
content.push("Survey Team");
// Combine content into a single string
var preFormatContent = content.join('___LINE_BREAK___');
// Replace text with \n for plain text
var plainTextContent = preFormatContent.replace('___LINE_BREAK___', '\n');
// Replace text with <br /> for HTML
var htmlContent = preFormatContent.replace('___LINE_BREAK___', '<br />');
MailApp.sendEmail(email ,
subject,
plainTextContent ,
{
name: "Survey Team",
html: htmlContent
});
}
【讨论】:
___LINE_BREAK___。因此,为了完全替换,只需添加全局替换选项,即 var plainTextContent = preFormatContent.replace(/___LINE_BREAK___/g, '\n'); 和 var htmlContent = preFormatContent.replace(/___LINE_BREAK___/g, '<br />'); @Hovo 您可能需要注意这一点,而不是拆分和加入。
msgBox 中的换行符:
Browser.msgBox('line 1 \\n line 2');
请注意,您需要使用额外的反斜杠来转义“\n”。
【讨论】:
我通常在邮件中使用表格,但我认为 <br /> 应该可以工作
【讨论】:
对于 HTML,<br> 应该可以工作。
对于 sheetApp 等其他谷歌应用程序中的 javascript/appscript,请使用模板文字,因为 MailApp 不响应 \n。 (即)键入两个反引号之间的内容并使用“输入”作为换行符,如下所示。无需使用单引号或双引号
const recipient = 'abc@xyz.com,cde@xyz.com'
const sub = 'some subject'
const line1 = 'some line1 content'// say 'Name'
const line2 = 'some line2 content'// say 'Contact Number'
const line3 = 'some line3 content'//say 'EMail Id'
const body = `Name: ${line1}
Contact Number: ${line2}
EMail Id: ${line3}`
MailApp.sendEmail(recipient,sub,body)
// There was a mistake with the original answer; I've added "$" for making the code above work.
【讨论】:
您可以使用\r 为 GmailApp 换行
\\n 更改 msgBox 的行。
【讨论】: