如何将输入到 Google 表单中的数据通过电子邮件发送给我
How can I get the data entered into a Google Form emailed to me?
我对我在网上找到的谷歌脚本进行了一些修改,但不知道如何编写这么好的脚本,我确定我在这里遗漏了一些东西。
我的目标是通过 Google 表单提交所有信息,然后通过电子邮件发送给我或我将创建的群组。
这里的脚本确实通过电子邮件向我发送了信息,但它全部作为一行添加,甚至没有提及问题。
我是一个完全的新手,但我相信这可以通过某种我不知道的命令或事件来解决。
看一看:
var EMAIL_SENT = "EMAIL_SENT";
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First column of data to process
var numRow = 1; // Number of columns to process
var dataRange = sheet.getRange(startRow, 1, numRow, 10)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var message1 = row[1,2,3,4,5];
var message2 = row[2];
var message3 = row[3];
var message4 = row[4];
var message5 = row[5];
var message6 = row[6];
var message7 = row[7];
var message8 = row[8];// Second column
var emailSent = row[10]
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
var subject = "New Hire On The Way!";
MailApp.sendEmail("itgroup@mycompany.com",subject,message1+message2+message3+message4+message5+message6);
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
}
}
}
整个"EMAIL_SENT"是我试图让脚本不重新发送已输入的信息。
如果有更好的方法,我很想听听。
非常感谢!
您可以在响应表中将此函数设置为onFormSubmit的触发器。
来源:在电子邮件中获取 Google 表单数据
function SendGoogleForm(e) {
var email = Session.getActiveUser().getEmail();
var subject = "Google Docs Form Submitted";
var s = SpreadsheetApp.getActiveSheet();
var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
for ( var keys in columns )
message += columns[keys] + ' :: '+ e.namedValues[columns[keys]] + "'n'n";
MailApp.sendEmail(email, subject, message);
}
如果您只是希望电子邮件具有更多的结构,则可以将html添加到单个消息中。取决于你想有多疯狂取决于你。这是一个简单的更改,您可以尝试它应该有更多的结构。将其替换为您的 if 语句
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
var subject = "New Hire On The Way!";
MailApp.sendEmail("itgroup@mycompany.com",subject,message1+"<br />"+"<br />"+"<br />"+message2+"<br />"+"<br />"+"<br />"+message3+"<br />"+"<br />"+"<br />"+message4+"<br />"+"<br />"+"<br />"+message5+"<br />"+"<br />"+"<br />"+message6+"<br />"+"<br />"+"<br />");
sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
}
我在这里所做的只是在您的消息之间添加中断。这应该会创建一些空间。你总是可以用内联的css和html发疯。对于初学者来说,www.w3schools.com 始终是一个不错的起点。祝你好运,编码愉快!
相关文章:
- 如果填写了特定值,则通过电子邮件发送电子表格中的数据
- 当单元格内容由于forumula从另一个工作表编译数据而更改时发送电子邮件
- 在文本区域检查电子邮件数据时出现奇怪的jquery错误
- 无法读取未定义的属性“用户名” - 通过电子邮件在 Node.js 中发送表单数据
- 如何通过电子邮件发送带有粗体文本的 Google 表单数据
- 有没有办法让电子邮件中的按钮远程发送数据
- 如何从注册电子邮件中“命名”Firebase中的数据
- 需要在 PHP 脚本中使用用户的本地时间来发送电子邮件 - 我如何从 JS 中获取数据并在我的 php 中使用它
- 如何获取电子邮件页面并向其提交表单数据
- 通过电子邮件发送表单数据
- 如何使用谷歌应用脚本和谷歌工作表数据逐行发送html电子邮件
- Ionic-来自电子邮件框的数据返回未定义
- 使用ajax发送数据,然后发送电子邮件
- 发送包含从ajax请求中检索到的数据的电子邮件
- 如何在电子邮件中渲染数据到图表
- 如何添加数据到我的firebase上的电子邮件和密码注册使用angularfire2
- 通过发送电子邮件向Parse.com类添加数据
- 谷歌表单从电子表格和电子邮件拉数据给用户
- 如何使用AJAX提交的$_POST数据发送电子邮件
- 将表单中的电子邮件数据发送到电子邮件地址