mail_daemon 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07eea8b37008357ec09b03fcab08ba8db2bc5dad
4
- data.tar.gz: a7abb364c92986f136ed4c569aa5ea90141bfcc9
3
+ metadata.gz: 9ecde2f676af4e347e1b2bb397cb159f90c3ff32
4
+ data.tar.gz: 31cfa71d1badd6db7ede971d9dc8d81b9a2ad806
5
5
  SHA512:
6
- metadata.gz: 1fdfc46450253881a3fde6909152010e8b20addf9a5c2deb990145b56c0ce17f1ba7d366e6d75bd201c7f0db97d8c8addf74c684f3ca41b72c3f396627313be6
7
- data.tar.gz: aaa872a1304075ab305e649ae35baa29506f889a87676e9eafd270be2c185413356784320ad2e3305f38c053894ff320fcc4e8f5123d3d45d57652530845829d
6
+ metadata.gz: df0bbced18789453cab87582caf191167b05f512078a2e415456f4d0026eec91fc65de4342a8cef125425e210f55230b9aca4976ce716a8cca6a3d8ab8032ce7
7
+ data.tar.gz: 72dd6f014d8b61917d575f572f95774db97651d1d9f9943fc33f9ae8275f4bc88b680bc849b2113592c3c902bf0abff127ca5855e8f3aa34fc3c63708ddd95e0
data/lib/mail_daemon.rb CHANGED
@@ -18,7 +18,9 @@ module MailDaemon
18
18
  def initialize(options)
19
19
  setup_options(options)
20
20
  default_option :connections, []
21
+ default_option :debug, false
21
22
 
23
+ puts "Setting up Signal Traps" if @options[:debug]
22
24
  Signal.trap("INT") {
23
25
  Thread.new {self.stop}.join
24
26
  }
@@ -29,8 +31,10 @@ module MailDaemon
29
31
  end
30
32
 
31
33
  def restart
34
+ puts "Restarting... " if @options[:debug]
32
35
  self.stop if self.running?
33
36
  Thread.new do
37
+ puts "Starting in new thread " if @options[:debug]
34
38
  self.start(&@client_handler_block)
35
39
  end
36
40
  end
@@ -59,7 +63,7 @@ module MailDaemon
59
63
  mailbox[:ssl_options] = {:verify_mode => OpenSSL::SSL::VERIFY_NONE} if mailbox[:ssl]
60
64
 
61
65
  puts "Setting up watcher for #{mailbox[:username]}"
62
- @watchers << MailDaemon::Imap::Watcher.new(mailbox)
66
+ @watchers << MailDaemon::Imap::Watcher.new(mailbox.merge(:debug => @options[:debug]))
63
67
  end
64
68
  @threads = []
65
69
  @watchers.each do |watcher|
@@ -24,33 +24,50 @@ module MailDaemon
24
24
 
25
25
  @notify_status_block = block
26
26
 
27
+ puts "initializing new imap connection for #{@options[:username]}:#{@options[:password]}@#{@options[:host]}:#{@options[:port]} " if @options[:debug]
28
+
27
29
  set_status(INITIALIZING)
28
30
 
29
31
  end
30
32
 
31
33
  def login
32
34
  set_status(CONNECTING)
35
+ puts "Creating a new imap object" if @options[:debug]
36
+ puts "SSL Options;" if @options[:debug]
37
+ puts @options[:ssl_options] if @options[:debug]
38
+ puts "" if @options[:debug]
33
39
  @imap = Net::IMAP.new(@options[:host], :port => @options[:port], :ssl => @options[:ssl_options])
34
40
  capabilities = @imap.capability
41
+ puts "Imap server capabilities are as follows:" if @options[:debug]
42
+ puts capabilities if @options[:debug]
43
+ puts "" if @options[:debug]
35
44
  @idle_available = capabilities.include?("IDLE")
36
45
 
46
+ if @idle_available
47
+ puts "Idle is available" if @options[:debug]
48
+ else
49
+ puts "Idle is not available" if @options[:debug]
50
+ end
51
+
37
52
  set_status(LOGGING_ON)
38
- @imap.login(@options[:username], @options[:password])
39
53
 
40
- # ap @imap.list("", "*")
54
+ puts "Logging in..." if @options[:debug]
55
+ @imap.login(@options[:username], @options[:password])
41
56
 
42
57
  @options[:folder] = "INBOX"
58
+ puts "Selecting folder '#{@options[:folder]}'" if @options[:debug]
43
59
  @imap.select(@options[:folder])
44
60
 
45
61
  # puts "starting tls"
46
62
  # @imap.starttls({}, verify=false) if @options[:start_tls]
47
63
 
48
64
  @idle_required = true
49
-
65
+ puts "Logged on." if @options[:debug]
50
66
  set_status(LOGGED_ON)
51
67
  end
52
68
 
53
69
  def wait_for_messages(&block)
70
+ puts "Fetching awaiting messages" if @options[:debug]
54
71
  fetch_message_ids.each do |message_id|
55
72
  yield fetch_message(message_id)
56
73
  end
@@ -59,12 +76,14 @@ module MailDaemon
59
76
 
60
77
  if @idle_available
61
78
  while(@idle_required)
62
-
79
+ puts "Starting Idle thread..." if @options[:debug]
80
+ puts "Will recycle in #{@options[:idle_recycle_time]} seconds" if @options[:debug]
63
81
  recycle_thread = Thread.new(Time.now + @options[:idle_recycle_time]) do |end_time|
64
82
  begin
65
83
  while Time.now < end_time
66
84
  sleep 1
67
85
  end
86
+ puts "Recycling idle thread" if @options[:debug]
68
87
  @imap.idle_done
69
88
  rescue => e
70
89
  puts e.message
@@ -85,13 +104,16 @@ module MailDaemon
85
104
  end
86
105
  recycle_thread.kill
87
106
  @idleing = false
107
+ puts "Fetching messages" if @options[:debug]
88
108
  fetch_message_ids.each do |message_id|
89
109
  yield fetch_message(message_id)
90
110
  end
91
111
  end
92
112
  else
113
+ puts "We're in polling mode..." if @options[:debug]
93
114
  set_status(POLLING)
94
115
  while(@idle_required)
116
+ puts "Checking for messages" if @options[:debug]
95
117
  fetch_message_ids.each do |message_id|
96
118
  yield fetch_message(message_id)
97
119
  end
@@ -101,6 +123,7 @@ module MailDaemon
101
123
  end
102
124
 
103
125
  def logout
126
+ puts "Logging out" if @options[:debug]
104
127
  @imap.idle_done if @idleing
105
128
  set_status(LOGGING_OFF)
106
129
  @imap.logout
@@ -108,6 +131,7 @@ module MailDaemon
108
131
  end
109
132
 
110
133
  def disconnect
134
+ puts "disconnecting" if @options[:debug]
111
135
  @idle_required = false
112
136
  logout unless @imap.disconnected?
113
137
 
@@ -9,6 +9,7 @@ module MailDaemon
9
9
  end
10
10
 
11
11
  def start(&block)
12
+
12
13
  @connection = Imap::Connection.new(@options, &block)
13
14
  @connection.login
14
15
  # @thread = Thread.new do
@@ -1,3 +1,3 @@
1
1
  module MailDaemon
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mail_daemon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - EmergeAdapt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-08 00:00:00.000000000 Z
11
+ date: 2016-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler