我正在尝试制作一个脚本,可以立即永久地自动删除某个发件人的电子邮件,因为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
}
};
但是,我一直无法找到使用GmailThread的方法并永久删除它,因为没有用于此目的的功能。我想看看是否有一种方法可以使用JavaScript完成任务,但一直无法弄清楚方法。
有没有人知道如何设置这些电子邮件,以便在收到时永久删除自己?
答案 0 :(得分:13)
根据设计,无法使用GmailApp永久删除电子邮件。
答案 1 :(得分:12)
在我的脚本中创建以下函数:
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());
}
}
要为此脚本启用高级服务,请在菜单上找到Resources
,然后选择Advanced Google services...
在列表中启用Gmail API
。
在选择OK
之前,请点击Google Developers Console
链接。搜索gmail
,并在那里启用该服务。
完成后,选择OK
;该功能现在应该工作。 (评论:如the link @karan provided中所述,可以将"me"
用于userID,或者提供一个Gmail地址:"<address>@gmail.com"
。)
(为我的脚本启用高级服务的步骤基于Google的指南here。)
答案 2 :(得分:3)
如果它对某人有帮助,可以使用高级服务来完成。
https://developers.google.com/gmail/api/v1/reference/users/messages/delete
高级服务中的方法是
l = [...]
for i in range(len(l)):
for j in range(i + 1, len(l)):
print l[i], l[j]
答案 3 :(得分:2)
此脚本适用于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());
}
}
答案 4 :(得分:0)
试试这个
function delete_all_mail(){
var myspreadsheet = SpreadsheetApp.openById('1AG1fZ9BuS8***********');
var mysheet = myspreadsheet.getSheets()[0];
//0~500
var threads = GmailApp.getInboxThreads(0 , 500);
for(var i = 0; i < threads.length; i++)
{
threads[i].moveToTrash();
}
}