Seb*_*ann 7 javascript regex gmail parsing google-apps-script
这是我尝试从头开始编写的第一个脚本.到现在为止一直没有好处,所以我会请求一些帮助.
案例:我收到来自电子商务网站的电子商务确认电子邮件,没有回复电子邮件地址.在电子邮件的正文中,他们从买家发送电子邮件地址.我想将自动邮件发送到正文的电子邮件地址.
我打算如何做到这一点(将会感谢任何消除步骤的建议).
使用规则标记带有唯一标记的传入电子邮件.
使用该标签通过脚本识别gmail中的电子邮件,逐个进行并提取我需要的信息.将正则表达式与电子邮件正文内容一起使用,以提取我需要发送自动电子邮件的电子邮件地址.计划是获取:主题,日期,来自正文的电子邮件.
将所有信息写入电子表格.
摆脱唯一标记信息以防止重复运行.
然后使用表单mule addon从电子表格发送电子邮件.
到目前为止,我已经处理了第1步(简单),并且一直在处理第2步和第3步(我不是编码器,我可以阅读,不引用和黑客攻击.从头开始编写是完全不同的事情).在我认为这是处理它的最佳方式之前,我已经处理了4.
使用脚本我将信息提取到电子表格,使用插件我使用电子表格中的信息发送电子邮件.
这是我到目前为止编写的代码.我已经离开了正则表达式部分,因为我甚至无法在电子表格中写入任何内容.一旦我开始工作,就开始在正则表达式中工作并"删除标签"方面的脚本.
function myFunction() {
function getemails() {
var label = GmailApp.getUserLabelByName("Main tag/subtag");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
var messages=threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var message=messages[j];
var subject=message.getSubject();
tosp(message);
}
}
}
function tosp(message){
var body=message.getBody()
var date=message.getDate();
var subject=message.getSubject();
var id= "my spreasheet id";
var ss = SpreadsheetApp.openById(id);
var sheet = ss.getActiveSheet();
sheet.appendRow(subject,date,body);
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
谢谢塞巴斯蒂安
poi*_*ick 21
以下是我编写和测试的代码,它完美地执行了您提到的步骤2,3和4.
function myFunction() {
var ss = SpreadsheetApp.getActiveSheet();
var label = GmailApp.getUserLabelByName("MyLabel");
var threads = label.getThreads();
for (var i=0; i<threads.length; i++)
{
var messages = threads[i].getMessages();
for (var j=0; j<messages.length; j++)
{
var msg = messages[j].getBody();
var sub = messages[j].getSubject();
var dat = messages[j].getDate();
ss.appendRow([msg, sub, dat])
}
threads[i].removeLabel(label);
}
}
Run Code Online (Sandbox Code Playgroud)
代码中的一个错误是appendRow函数接受[ ]括号内指定的元素数组.
根据您附加此脚本的位置,您的代码行:
var ss = SpreadsheetApp.openById(id);
Run Code Online (Sandbox Code Playgroud)
如果脚本是在电子表格的脚本编辑器中编写的,那么就不需要记录这些电子邮件.但是,如果该电子表格中有多个工作表,则可以替换我的行
var ss = SpreadsheetApp.getActiveSheet();
Run Code Online (Sandbox Code Playgroud)
通过
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
Run Code Online (Sandbox Code Playgroud)
另一个建议是,当前代码将为您提供HTML格式的消息.因此,如果您希望在查看时以纯文本格式显示消息,请使用:
var msg = messages[i].getPlainBody();
Run Code Online (Sandbox Code Playgroud)
现在你可以为regex编写另一个函数并将消息传递msg给它.希望这可以帮助!
我制作了一个现成的脚本,为那些需要更多帮助的人解释了如何使用它(从一开始)。
\n它位于gmail-to-google-sheets-script存储库上。只需阅读内容并按照说明进行操作即可。
\nSEARCH_QUERY为您的真实查询(首先在 Gmail 上进行搜索,将搜索词复制并粘贴到此处)saveEmails(靠近“运行”和“调试”按钮)如果您想保存不同的消息属性,请查看gmail-message 类并更改脚本文件,将下面的代码用 \xe2\x9c\x8f\xef\xb8\x8f(铅笔)注释掉。
\n| 归档时间: |
|
| 查看次数: |
18342 次 |
| 最近记录: |