我第一次在这里提出一个问题(在发布之前一直在搜索),所以请承担我可能犯的错误。
问题: 我目前正在开发一个谷歌网站的网站。在那里制作了一些表格,并在这些表格中添加了一个脚本,以便在表单提交并保存在电子表格后通过电子邮件发送信息输入,这很好用,但收到的电子邮件中的邮件非常混乱。 / p>
代码中的所有“\ n”表达式都被忽略了。 我从www.labnol.org获得了代码的基础,并且稍微编辑了一下。
首先,代码:
function sendFormByEmail(e)
{
//I took the two mail addresses out here, but they are working in the original
var email = "first mail address";
var email2 = "second mail address";
var subject = "New Announce your visit form submitted";
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "A new 'Announce your visit' form has been submitted on the website: \n\n" + "\n\n";
for(var i in headers) {
message = message + "\n \n";
message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n";
}
var senderEmail = e.namedValues[headers[6]].toString();
MailApp.sendEmail(email, senderEmail, subject, message);
MailApp.sendEmail(email2, senderEmail, subject, message);
}
正如你所看到的,我一直在努力将\ n放在不同的地方作为替代,但无论我放在哪里它都会被忽略。
原始循环看起来像这样:
for(var i in headers)
message += headers[i] + ' = '+ e.namedValues[headers[i]].toString() + "\n\n";
在我对代码进行一些修改之前,它工作正常。但即使我没有触及这些行,也没有触及有助于获取消息的代码的任何其他部分,\ n停止工作。 我一直试图解决它(因为搞砸了\ n放在上面的节目中),但没有成功。
所以现在我正试图找到一种方法来解决它们,或者至少是一种解决方法,并希望你们中的任何一个人都知道正在发生什么,或者如何让它们再次运作。
提前致谢。
ps:如果您需要更多信息,请告诉我
答案 0 :(得分:4)
解决方案是使用GmailApp.sendEmail方法而不是MailApp.sendEmail方法。 GmailApp sendMail
正确处理\n
。
答案 1 :(得分:2)
以下是您正在做的事情的替代解决方案:HtmlTemplate
一些示例代码:
function sendEmailWithTemplateExample() {
var t = HtmlService.createTemplateFromFile("body.html");
t.someValue = "some dynamic value";
var emailBody = t.evaluate().getContent();
MailApp.sendEmail("your@email.here", "test email", emailBody);
}
这是body.html中相应的模板代码(点击“文件 - >新建 - > Html文件”):
Body goes here
<?= someValue ?>