4

我第一次在这里提出问题(发布前一直在搜索)所以请容忍我可能犯的错误。

问题:我目前正在与谷歌网站合作的网站。在那里制作了一些表单,并在这些表单中添加了一个脚本,以便在表单提交并保存在电子表格上后通过电子邮件发送信息输入,这工作得很好,但是到达的电子邮件中的消息非常混乱。

代码中的所有“\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 所示),但没有成功。

所以现在我正试图找到一种方法来修复它们,或者至少是一种解决方法,并希望你们中的任何人都知道 \n 发生了什么或如何让它们再次工作。

提前致谢。

ps:如果您需要更多信息,请告诉我

4

2 回答 2

4

一种解决方案是使用GmailApp.sendEmail方法而不是MailApp.sendEmail方法。GmailApp 的sendMail处理\n正确。

于 2012-10-09T12:26:03.047 回答
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 ?>
于 2012-10-10T18:19:09.973 回答