google-apps-script - 谷歌脚本格式化通过脚本提取的信息
问题描述
下面的脚本将读取我的电子邮件并从电子邮件以及消息的收件人中提取一个值。我正在寻找添加到我刚刚获取收件人电子邮件地址的代码。
目前,代码将处理:John Doe *** john.doe@gmail.com **** - 我只希望代码拉 john.doe@gmail.com,没有箭头括号符号
非常感谢任何有关在何处添加此内容的见解!
// 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();
var recipient = thread.getMessages()[0].getTo();
// Processes the messages here
orderinfo = message.split("example");
rowdata = orderinfo[1].split(" ");
// Add message to sheet
sheet.appendRow([rowdata[1], recipient]);
// 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);
}
解决方案
关于您的最后一条错误消息:
var LABEL_PENDING = "example label/PENDING";
var LABEL_DONE = "example label/DONE";
脚本将搜索名称为:“example label/PENDING”和“example label/DONE”的标签。你确定你有名为“example label/PENDING”或“example label/DONE”的标签吗?
这是基于您的示例的一些修改代码。您只需要创建标签“PENDING”并使用此标签标记一些消息。
var LABEL_PENDING = "PENDING";
function processPending () {
var sheet = SpreadsheetApp.getActive().getActiveSheet();
// Date format
var d = new Date();
var date = d.toLocaleDateString();
// Get out labels by name
var label_pending = GmailApp.getUserLabelByName(LABEL_PENDING);
// 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 i = 0; i <threads.length; i++) {
var thread = threads[i];
// Gets the recipient
var recipient = thread.getMessages()[0].getTo();
// Add recipient to sheet
sheet.appendRow([recipient]);
}
}
推荐阅读
- python - TypeError:“模块”对象不可调用 Flask JWT
- url - 我如何与邮递员通话?
- spring - 是否有验证器来验证整数列表?私人名单
地位; - node.js - Knex、Postgres 和 STRING_ARRAY:得到不同的结果
- ios - 如何向 Cordova IOS 应用程序添加缺少的推荐人标头
- reactjs - 单击按钮不起作用 - React
- django - 检查我的 MongoDB 并得到一个不寻常的 dbs
- c# - 对 WCF WebService 的调用在本地工作,但不能从 Azure 应用服务
- sas - SAS中的虚拟变量数值差
- python - How to access psycopg2 error wrapped in sqlalchemy error