Google Apps脚本:提交的消息内容(表单提交脚本)

时间:2014-03-06 01:14:39

标签: javascript google-apps-script

请原谅我对Google应用程序流程缺乏了解。我最近想出了如何将包含Google表单提交数据的电子邮件发送给我/我自己。我的脚本工作得很好,但是,我遇到了一个问题,脚本发送的消息内容是线性格式的。例如,用户输入两个句子,用一条线将它们分开,我看到的只是一个长线性文本。

如果有人知道如何以用户提交的“原样”形式接收表单提交数据,那将对我有很大帮助。请查看我的代码,看看是否有任何方法可以在Google Scripts中实现这样的功能。

function sendFormByEmail(e)  {    
  var email = "xxxxx@xxxx.com";  
  var subject1 = "Approval Required Case # ";
  var subject2 = " submitted by: ";

  var s = SpreadsheetApp.getActiveSheet();
  var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  

  var message2 = "";
  var message1 = "";
  var replyemail = "";
  for(var i in headers)
    message2 += "<u><b>" + headers[i] + "</b></u> : " + e.namedValues[headers[i]].toString() + "<br><br>" + "\n\n"; 
    message1 += "<b><font color ='blue'><big> Hi XXXX, </big></font></b>" + "<br><br>" + "Could you please approve the below? " + "<br><br>";
    replyemail = e.namedValues['Username'].toString();
  Logger.log(message);  

  subject=subject1 + e.namedValues['Case Number'].toString() + subject2 + e.namedValues['Username'].toString();
  var message = message1 + message2;

  MailApp.sendEmail(email, subject,message,{name: "Approval Submission: Review",replyTo: replyemail, cc: "" ,'htmlBody':message,}); 
}

再次 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用JavaScript替换方法更改<br>

的所有换行符
message = message.replace("\n", "<br>");
MailApp.sendEmail(email, subject,message,{name: "Approval Submission: Review",replyTo: replyemail, cc: "" ,'htmlBody':message}); 

答案 1 :(得分:0)

For:感兴趣的人..

我想出了如何达到原始问题中所述的预期效果。如何...?

非常简单的添加:.replace(new RegExp('\r?\n','g','<br /v>')在我的内容字符串之后。

查看以下代码

    message2 += "<u><b>" + headers[i] + "</b></u> : " + e.namedValues[headers[i]].toString().replace(new RegExp('\r?\n','g'), '<br />') 
+ "<br><br>" + "\n\n";

祝所有人好运!