Class: IMAPCleanse
- Inherits:
-
IMAPClient
- Object
- IMAPClient
- IMAPCleanse
- Defined in:
- lib/imap_cleanse.rb
Overview
IMAPCleanse removes old messages from your IMAP mailboxes so you don’t have to!
aka part three of my Plan for Total Email Domination.
IMAPClient doesn’t remove messages you haven’t read nor messages you’ve flagged. See also IMAPFlag for automatic flagging goodness!
Class Method Summary collapse
-
.process_args(args) ⇒ Object
Handles processing of
args
.
Instance Method Summary collapse
-
#initialize(options) ⇒ IMAPCleanse
constructor
Creates a new IMAPCleanse from
options
. -
#run ⇒ Object
Removes read, unflagged messages from all selected mailboxes…
Methods inherited from IMAPClient
#connect, #find_mailboxes, #log, #mark, run, #search
Constructor Details
#initialize(options) ⇒ IMAPCleanse
Creates a new IMAPCleanse from options
.
Options include:
+:Age+:: Delete messages older than this many days ago
and all options from IMAPClient
38 39 40 41 |
# File 'lib/imap_cleanse.rb', line 38 def initialize() @before_date = (Time.now - 86400 * [:Age]).imapdate super end |
Class Method Details
.process_args(args) ⇒ Object
Handles processing of args
.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/imap_cleanse.rb', line 17 def self.process_args(args) = { :Age => [nil, 'Age option not set'] } super args, do |opts, | opts.on("-a", "--age AGE", "Delete messages more than AGE days old", "Default: #{[:Age].inspect}", "Options file name: Age", Integer) do |age| [:Age] = age end end end |
Instance Method Details
#run ⇒ Object
Removes read, unflagged messages from all selected mailboxes…
46 47 48 49 50 51 52 |
# File 'lib/imap_cleanse.rb', line 46 def run super "Cleansing read, unflagged messages older than #{@before_date}", [:Deleted] do @imap.expunge log "Expunged deleted messages" end end |