有这个函数here,如果你在“试试这个api”部分运行它,那么工作正常......
但是,如果我像这样实现它(deleteMessage):
<?php
if(isset($_POST['reply'])){
$post_id = $_GET['post_id'];
它不起作用,我在第2行(函数deleteMessage)上得到以下错误(从西班牙语翻译,所以我不知道它是否是一个确切的翻译):“一个名字(?)是落后(在?之后)运营商“。”“
你能指出我做错了吗?
此致
答案 0 :(得分:0)
根据标签判断,我了解您使用的是Google App脚本,而不是独立的JavaScript。该示例不适用于Google Apps脚本,也不适用于此。
如果我理解正确,您希望从帐户中删除所有草稿。您还可以访问GmailApp,只需更少的步骤即可轻松完成您想要的操作。所以,假设您转到Resources → Advanced Google services...
,启用Gmail API
并将其称为Gmail
。然后,以下代码将删除当前用户的所有草稿
function clearDrafts() {
var Drafts = GmailApp.getDraftMessages();
for (var i = 0; i < Drafts.length; i++)
Gmail.Users.Messages.remove('me', Drafts[i].getId());
}
此功能将删除所有草稿而不删除实际收到的消息。因此,例如,如果您收到电子邮件,点击回复,输入内容并运行此功能,它将删除草稿,但收到的电子邮件将保持不变。
答案 1 :(得分:0)
您可以使用GmailApp将邮件移至草稿(can't delete mail using GmailApp)。
现在,如果您要永久删除电子邮件,请使用Advanced Google Services:
要查看哪些Google API可用作高级服务,请查找&#34;高级Google服务&#34; Reference中的部分。如果您想使用不能作为高级服务使用的Google API,只需像其他任何external API一样连接到它。
要使用高级Google服务,请按以下说明操作:
- 在脚本编辑器中,选择资源&gt;高级Google服务....
- 在显示的对话框中,点击您要使用的服务旁边的开启/关闭开关。
- 在对话框底部,点击 Google API控制台的链接。
- 在控制台中,单击过滤器框并键入API名称的一部分(例如,&#34;日历&#34;),然后在看到后单击该名称。
- 在下一个屏幕上,点击启用API 。
- 关闭开发人员控制台并返回脚本编辑器。点击对话框中的确定。您启用的高级服务现在可以自动填充。
醇>
我已更新您的代码:
function cleanUp2() {
var threads = GmailApp.search("SOME SEARCH");
Logger.log(threads.length);
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
Logger.log(messages.length);
for (var j = 0; j < messages.length; j++){
if (messages[j].isDraft()){
Logger.log('me' + 'id msg: ' + messages[j].getId());
deleteMessage('me',messages[j].getId());
}
else{
Logger.log('me' + 'id msg: ' + messages[j].getId() +" not draft");
}
}
}
}
function deleteMessage(userId, messageId) {
Gmail.Users.Messages.remove(userId, messageId);
}
希望这有帮助。
运行代码后:
请检查您是否已启用Advance Google Service。