首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Gmail导出表单数据-为电子邮件日期/时间添加列

问从Gmail导出表单数据-为电子邮件日期/时间添加列
EN

Stack Overflow用户
提问于 2021-05-19 19:44:34
回答 1查看 61关注 0票数 0

我有一个网页,发送电子邮件到gmail时,表单是提交的。电子邮件包含已提交的表单数据。我正在使用Google脚本将表单数据从gmail导出到google表中。这个脚本很好用,但我不知道如何为单个电子邮件的日期/时间添加一个额外的数据列。这样我就可以按提交表格的日期/时间对表格中的数据进行排序。是否有方法修改脚本以添加电子邮件日期/时间的额外列?下面是脚本:

代码语言:javascript
复制
    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
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-19 21:05:50

解决方案:

您可以使用message.getDate()获取Gmail消息的日期和时间;这将返回一个可以附加到电子表格中的Date对象。

代码语言:javascript
复制
    // Get the first email message of a threads
    var tmp,
    message = threads[i].getMessages()[0],
    subject = message.getSubject(),
    content = message.getPlainBody(),
    timestamp = message.getDate();
代码语言:javascript
复制
    sheet.appendRow([first, last, title, organization, city, state, country, email, timestamp]);

参考资料:

类GmailMessage \x{e76f} getDate()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67609894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档