Class: Redimap::ImapConn

Inherits:
Object
  • Object
show all
Defined in:
lib/redimap/imap_conn.rb

Instance Method Summary collapse

Constructor Details

#initializeImapConn

Returns a new instance of ImapConn.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/redimap/imap_conn.rb', line 7

def initialize
  begin
    @imap = Net::IMAP.new(Redimap.config.imap_host, {
      :port => Redimap.config.imap_port,
      :ssl  => true
    })
    
    @imap.(Redimap.config.imap_username, Redimap.config.imap_password)
  rescue Net::IMAP::NoResponseError => e
    Redimap.logger.error { e.to_s }
    
    return
  end
  
  if block_given?
    yield self
    
    close
  end
end

Instance Method Details

#closeObject



28
29
30
31
32
# File 'lib/redimap/imap_conn.rb', line 28

def close
  @imap.logout
  
  @imap.disconnect
end

#read_mailbox(mailbox = "INBOX", last_seen_uid = 0) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/redimap/imap_conn.rb', line 34

def read_mailbox(mailbox = "INBOX", last_seen_uid = 0)
  @imap.select(mailbox)
  
  uids = @imap.uid_search("#{last_seen_uid + 1}:*")
  
  uids.find_all { |uid| uid > last_seen_uid } # IMAP search gets fun with edge cases.
end