0

该脚本从电子邮件中读取纯文本并将它们发送到另一个函数以在电子表格中写入精确值。

我的问题是从电子邮件纯文本中获取一些数据(日期、姓名等)。

这是功能:

   var threads = GmailApp.search('label:aoaoaoaoa');
   Logger.log(threads);
   Logger.log(threads[0].getMessages());
   Logger.log(threads[0].getMessages().length);
   var messages;// = threads[0].getMessages();
   var ContentEmail;// = messages[0].getBody();

   var bodyRe = new RegExp("(?=start date)(.*)(?=finish date)");

   for (var i = 0; i < threads.length; i++) {
    messages = threads[i].getMessages()
    ContentEmail = messages[0].getPlainBody();

   var myArray = bodyRe.exec(ContentEmail);
   Logger.log(myArray); 

myArray 为空。我尝试了许多正则表达式来获取两个单词之间的文本。其中一些返回null。其他导致脚本中的 SyntaxError。

这是我想要获取日期、姓名、电话号码、电子邮件和地点的示例消息。

Confirmation Code: CAXNA3JAA   Tue, October 01, 2013
start date     Tue, October 08, 2013
finish date 
Place: AOA Studio <http://www.**********************>
[image: Ali] <http://www.**********************>
Ali <http://www.***************************>
+49 000 000 00000
******@gmail.com

或者您是否建议使用 google script html 函数从电子邮件中读取数据?这里

4

1 回答 1

0

如果您可以指定使用多行,则可以使用以下内容:

^start date\s*(.+)

但是,这不包括接下来显示的查找日期。

否则,这对我有用:(你可能要小心换行)

start date\s*(.+)\nfinish date

要包括\r\n您可以使用:

start date\s*(.+)(\r|\n)+finish date
于 2013-10-08T17:17:32.287 回答