【问题标题】:Delete multiple emails from INBOX in gmail using GMAIL API使用 GMAIL API 从 gmail 中的收件箱中删除多封电子邮件
【发布时间】:2015-10-21 07:24:24
【问题描述】:

有没有办法使用 GMAIL API 从 gmail 的收件箱中选择多封电子邮件,并在一个请求中删除它们。例如:我选择了 3 封邮件进行删除,并且仅在一个请求中删除它们。

在 GMAIL API 中我发现了这个 service.users().threads().delete(userId, threadId).execute(); 在其中我必须一一传递邮件的消息 ID 才能删除,这将消耗大量时间。提前致谢

【问题讨论】:

    标签: email gmail


    【解决方案1】:

    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 不会将您的邮件移至垃圾箱,而是永久删除您的邮件。

    【讨论】:

    • 您使用的确切代码是什么?我总是收到无效 ID 错误
    • 更新:我不确定这次我写的代码是否正确,但现在我收到了 BackendError。有什么想法吗?
    • 能否添加示例代码以便更好地理解?
    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多