class ImapClear::App

Attributes

host[RW]
imap[R]
inbox[RW]
pass[RW]
port[RW]
trashbox[RW]
user[RW]

Public Class Methods

new() click to toggle source
# File lib/imap_clear/app.rb, line 25
def initialize
  @inbox = "INBOX"
  @trashbox = "INBOX.Trash"
end

Public Instance Methods

connect() click to toggle source
# File lib/imap_clear/app.rb, line 30
def connect
  @imap = Net::IMAP.new(host, port, true, nil, false)
end
delete_uids(uids) click to toggle source
# File lib/imap_clear/app.rb, line 72
def delete_uids uids
  $stdout.print "Deleting #{uids.count} emails\n"
  $stdout.flush
  uids.each do |uid|
    imap.uid_copy(uid, trashbox)
    imap.uid_store(uid, "+FLAGS", [:Deleted])
    $stdout.print "."
    $stdout.flush
  end
end
disconnect() click to toggle source
# File lib/imap_clear/app.rb, line 91
def disconnect
  imap.disconnect unless imap.disconnected?
end
expunge() click to toggle source
# File lib/imap_clear/app.rb, line 87
def expunge
  imap.expunge
end
fetch(seqno) click to toggle source
# File lib/imap_clear/app.rb, line 56
def fetch seqno
  imap.fetch(seqno, ["UID","ENVELOPE"])
end
get_uids_where_body_contains(value) click to toggle source
# File lib/imap_clear/app.rb, line 51
def get_uids_where_body_contains value
  select_mailbox(inbox)
  uids = imap.uid_search(["BODY", value])
end
get_uids_where_from(email_address) click to toggle source
# File lib/imap_clear/app.rb, line 46
def get_uids_where_from email_address
  select_mailbox(inbox)
  uids = imap.uid_search(["FROM", email_address])
end
list_mailboxes() click to toggle source
# File lib/imap_clear/app.rb, line 38
def list_mailboxes
  imap.list("", "*")
end
login() click to toggle source
# File lib/imap_clear/app.rb, line 34
def login
  @imap.login(user, pass)
end
select_mailbox(mailbox) click to toggle source
# File lib/imap_clear/app.rb, line 42
def select_mailbox mailbox
  imap.select(mailbox)
end
show_envelope_for_uid(uid) click to toggle source
# File lib/imap_clear/app.rb, line 83
def show_envelope_for_uid uid
  imap.uid_fetch(uid, "ENVELOPE")
end
subject_line(seqno) click to toggle source
# File lib/imap_clear/app.rb, line 64
def subject_line seqno
  imap.fetch(seqno, "BODY[HEADER.FIELDS (SUBJECT)]")
end
uid_fetch(uid) click to toggle source
# File lib/imap_clear/app.rb, line 60
def uid_fetch uid
  imap.uid_fetch(uid, "ENVELOPE")
end
uid_subject_line(uid) click to toggle source
# File lib/imap_clear/app.rb, line 68
def uid_subject_line uid
  imap.uid_fetch(uid, "BODY[HEADER.FIELDS (SUBJECT)]")
end