Spe*_*ner 12 javascript gmail google-apps-script
我正在尝试制作一个脚本,可以立即永久地自动删除某个发件人的电子邮件,因为Gmail只允许过滤器向垃圾箱发送电子邮件30天.请不要建议默认过滤器就足够了,就我的情况而言,至关重要的是我不知道我收到了来自此发件人的电子邮件.
我当前的脚本如下所示:
function deleteForever(labelName) {
var threads = GmailApp.search("in:trash label:" + labelName);
for (var i = 0; i < threads.length; i++) {
threads[i].moveToTrash(); // Where I would need a delete forever trigger
}
};
Run Code Online (Sandbox Code Playgroud)
但是,我一直无法找到使用GmailThread的方法并永久删除它,因为没有用于此目的的功能.我想看看是否有一种方法可以使用JavaScript完成任务,但一直无法弄清楚方法.
有没有人知道如何设置这些电子邮件,以便在收到时永久删除自己?
Jon*_* Y. 14
@ karan的回答已经指出了对我有用的解决方案,但由于缺乏经验/非专业开发人员,我花了一点时间将其转化为原始问题的工作解决方案.以下是我用于执行此任务的步骤的简要说明:
在我的脚本中创建以下函数:
function deleteForever(userId, labelName) {
var threads = GmailApp.search("in:trash label:" + labelName);
for (var i = 0; i < threads.length; i++) {
Gmail.Users.Messages.remove(userId, threads[i].getId());
}
}
Run Code Online (Sandbox Code Playgroud)要为此脚本启用高级服务,请Resources在菜单上找到,然后选择Advanced Google services...
Gmail API在列表中启用.
在选择之前OK,请单击Google Developers Console链接.搜索gmail并在那里启用服务.
完成,选择OK; 该功能现在应该工作.(评论:如@karan提供的链接中所述,可以使用"me"userID,或者提供一个人的Gmail地址:"<address>@gmail.com".)
(为我的脚本启用高级服务的步骤基于此处的 Google指南.)
小智 9
该脚本适用于 Google Apps 脚本。您必须将服务连接起来并进行身份验证。
function myFunction() {
var labelName = "deleteForever"
var threads = GmailApp.search("in:trash label:" + labelName);
for (var i = 0; i < threads.length; i++) {
Gmail.Users.Messages.remove('me', threads[i].getId());
}
}
Run Code Online (Sandbox Code Playgroud)
如果它对某人有帮助,可以使用高级服务来完成。
https://developers.google.com/gmail/api/v1/reference/users/messages/delete
高级服务中的方法是
Gmail.Users.Messages.remove(userId, id)