我有自动电子邮件提醒,这些提醒会进入我的收件箱中的标签(通过回复),也会发送给用户(通过以下方式:电子邮件的一部分)。
我希望添加到我的脚本中,以便在电子邮件正文中提取信息。最终,我想拉动电子邮件的收件人(在:部分)并将其放在谷歌表的B栏中。任何见解将不胜感激。
脚本:
// Modified from http://pipetree.com/qmacro/blog/2011/10/automated-email-to-task-mechanism-with-google-apps-script/
// Globals, constants
var LABEL_PENDING = "Example label/PENDING";
var LABEL_DONE = "Example label/DONE";
// processPending(sheet)
// Process any pending emails and then move them to done
function processPending_(sheet) {
// Date format
var d = new Date();
var date = d.toLocaleDateString();
// Get out labels by name
var label_pending = GmailApp.getUserLabelByName(LABEL_PENDING);
var label_done = GmailApp.getUserLabelByName(LABEL_DONE);
// The threads currently assigned to the 'pending' label
var threads = label_pending.getThreads();
// Process each one in turn, assuming there's only a single
// message in each thread
for (var t in threads) {
var thread = threads[t];
// Gets the message body
var message = thread.getMessages()[0].getBody();
// Processes the messages here
orderinfo = message.split("example split");
rowdata = orderinfo[1].split(" ");
// Add message to sheet
sheet.appendRow([rowdata[1]]);
// Set to 'done' by exchanging labels
thread.removeLabel(label_pending);
thread.addLabel(label_done);
}
}
// main()
// Starter function; to be scheduled regularly
function main_emailDataToSpreadsheet() {
// Get the active spreadsheet and make sure the first
// sheet is the active one
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.setActiveSheet(ss.getSheets()[0]);
// Process the pending emails
processPending_(sh);
}
答案 0 :(得分:0)
您可以使用邮件的getTo()
功能访问收件人数据。您只需添加一行即可将其保存在列
//Gets the message body and recipent
var message = thread.getMessages()[0].getBody();
var recipient = thread.getMessages()[0].getTo();
//...
// Add message and recipient to sheet
sheet.appendRow([rowdata[1], recipient]);
有关gmailMessage类功能的更多信息 - > https://developers.google.com/apps-script/reference/gmail/gmail-message