Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #!/usr/bin/ruby
  2. #
  3. # usage:
  4. # ------
  5. # empty the trash
  6. # ruby g.rb --deletetrash user@gmail.com password
  7. #
  8. #
  9. # notes:
  10. # ------
  11.  
  12.  
  13. # load modules
  14. require 'net/imap'
  15. require 'date'
  16.  
  17. # declare globals
  18. result = nil
  19. user = ''
  20. pass = ''
  21. deletetrash = false # default: make user manually 'Empty Trash now' via web
  22. deletespam = false # default: we don't care about the 'Spam' folder much
  23.  
  24. # process command line arguments
  25. if(ARGV.size > 1)
  26. if(ARGV[0] == '--deletetrash')
  27. deletetrash = true
  28. ARGV.shift
  29. end
  30. if(ARGV[0] == '--deletetrashspam')
  31. deletetrash = true
  32. deletespam = true
  33. ARGV.shift
  34. end
  35. user = ARGV[0]
  36. pass = ARGV[1]
  37. if(ARGV.size == 3)
  38. label = ARGV[2]
  39. end
  40. else
  41. puts "Usage: ruby gmail.rb [--deletetrash|--deletetrashspam] <user@gmail.com> <password>"
  42. exit(1)
  43. end
  44.  
  45. # connect to the server
  46. puts "Started at #{Time.now}"
  47. imap = Net::IMAP.new('imap.gmail.com', '993', true)
  48. imap.login(user, pass)
  49.  
  50. # do we have to empty the trash, too?
  51. if deletetrash
  52. imap.select('[Gmail]/Trash')
  53. result = imap.search(["SINCE", '1-Jan-1900'])
  54. #result = imap.search(["FROM", "Somebody"])
  55. puts "Attempting to delete all #{result.length} messages in trash..."
  56. imap.store(1..result.length, "+FLAGS", [:Deleted])
  57. imap.expunge
  58. end
  59.  
  60. # did the user want to clean out the spam folder, too?
  61. if deletespam
  62. imap.select('[Gmail]/Spam')
  63. result = imap.search(["SINCE", '1-Jan-1900'])
  64. puts "Attempting to delete all #{result.length} messages in spam folder..."
  65. imap.store(1..result.length, "+FLAGS", [:Deleted])
  66. imap.expunge
  67. end
  68.  
  69. # end imap session
  70. imap.logout
  71.  
  72. # tell the user we finished
  73. puts "Ended at #{Time.now}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement