我可以使用Google Apps脚本通过Gmail从定期发送的电子邮件中导出特定信息吗?

时间:2016-04-07 12:28:10

标签: javascript email google-apps-script automation gmail

我想要一个脚本来查找具有特定主题行的电子邮件,然后在该电子邮件中查找信息并将其导出到文档,电子表格或以纯文本形式发送给我自己。

我们通过电子邮件获得印花服装的订单。

主题:
您的T恤订单

正文:
要打印的名称:詹姆斯
要打印的名称:史蒂夫
要打印的名称: Ryan

我喜欢一种方法来获取所有名称,将它们复制并粘贴到Adobe Illustrator并将其设置为打印。

1 个答案:

答案 0 :(得分:1)

要将Gmail邮件保存到Google电子表格,您需要指定要导出匹配邮件的Gmail search querysheet ID

从此tutorial找到此示例代码。

var SEARCH_QUERY = "label:inbox is:unread to:me";

// Credit: https://gist.github.com/oshliaer/70e04a67f1f5fd96a708

function getEmails_(q) {
    var emails = [];
    var threads = GmailApp.search(q);
    for (var i in threads) {
        var msgs = threads[i].getMessages();
        for (var j in msgs) {
            emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
                .replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
            ]);
        }
    }
    return emails;
}

function appendData_(sheet, array2d) {
    sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}

function saveEmails() {
    var array2d = getEmails_(SEARCH_QUERY);
    if (array2d) {
        appendData_(SpreadsheetApp.getActiveSheet(), array2d);
    }
}

您还可以查看相关的forumtutorial