我有一个网页,发送电子邮件到gmail时,表单是提交的。电子邮件包含已提交的表单数据。我正在使用Google脚本将表单数据从gmail导出到google表中。这个脚本很好用,但我不知道如何为单个电子邮件的日期/时间添加一个额外的数据列。这样我就可以按提交表格的日期/时间对表格中的数据进行排序。是否有方法修改脚本以添加电子邮件日期/时间的额外列?下面是脚本:
function parseEmailMessages(start) {
start = start || 0;
var labelName = "Temp1"; // <------- SET THE LABEL NAME
var labels = GmailApp.getUserLabels();
var threads = [];
for (var i = 0; i < labels.length; i++) {
if (labels[i].getName() == labelName) {
threads = labels[i].getThreads();
break;
}
}
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 0; i < threads.length; i++) {
// Get the first email message of a threads
var tmp,
message = threads[i].getMessages()[0],
subject = message.getSubject(),
content = message.getPlainBody();
// Get the plain text body of the email message
// You may also use getRawContent() for parsing HTML
// Implement Parsing rules using regular expressions
if (content) {
tmp = content.match(/First:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var first = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Last:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var last = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Title:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var title = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Organization:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var organization = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/City:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var city = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/State:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var state = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/Country:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@./\s\-]+)(\r?\n)/);
var country = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/E-mail:\s*([A-Za-z0-9!"?`?|äõüö’–_—žčâèçëıÅĂôà=ÚíšÃÉÁÇÃáéñãóú#&;
()-,'@_.\-]+)/);
var email = (tmp && tmp[1]) ? tmp[1].trim() : 'BLANK';
tmp = content.match(/BLANK:\s*([\s\S]+)/);
var blank = (tmp && tmp[1]) ? tmp[1] : 'BLANK';
sheet.appendRow([first, last, title, organization, city, state, country, email]);
} // End if
} // End for loop
}发布于 2021-05-19 21:05:50
解决方案:
您可以使用message.getDate()获取Gmail消息的日期和时间;这将返回一个可以附加到电子表格中的Date对象。
// Get the first email message of a threads
var tmp,
message = threads[i].getMessages()[0],
subject = message.getSubject(),
content = message.getPlainBody(),
timestamp = message.getDate(); sheet.appendRow([first, last, title, organization, city, state, country, email, timestamp]);参考资料:
https://stackoverflow.com/questions/67609894
复制相似问题