使用GMAIL API从gmail中删除来自INBOX的多封电子邮件

时间:2015-07-30 04:38:43

标签: email gmail

有没有办法使用GMAIL API在gmail中从INBOX中选择多个电子邮件,并在一个请求中删除它们。例如:我选择了3封邮件,只在一个请求中删除和删除它们。

在GMAIL API中我找到了这个 service.users().threads().delete(userId, threadId).execute();我必须逐个传递邮件的邮件ID以进行删除,这将耗费大量时间。提前致谢

1 个答案:

答案 0 :(得分:0)

Gmail提供API,可以一次删除多封电子邮件,您可以在请求正文中传递多个ID。这是API参考。

https://developers.google.com/gmail/api/v1/reference/users/messages/batchDelete

修改:添加了示例代码

我使用google-api-client v0.8.2 gem来进行API调用。这是一个示例代码。

require 'google/api_client'
@client = Google::APIClient.new({application_name: 'MyApp', application_version: 'MyAppVersion'})
@client.authorization.access_token = MY_ACCESS_TOKEN
@service = @client.discovered_api('gmail')

payload = {ids: ['id_1', 'id_2']} # You can add multiple ids here
result = @client.execute(
    :api_method => @service.users.messages.batch_delete,
    :parameters => {userId: 'me'},
    :headers => {'Content-Type' => 'application/json'},
    :body => payload.to_json
)
puts result.success? # true/false
  

注意:示例代码中使用的API不会将您的邮件移至废纸篓,而是会永久删除您的邮件。