mailhandler 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mailhandler/receiving/base.rb +16 -22
- data/lib/mailhandler/receiving/imap.rb +9 -3
- data/lib/mailhandler/version.rb +1 -1
- data/mailhandler.gemspec +2 -2
- data/readme.md +2 -2
- data/spec/unit/mailhandler/receiver_spec.rb +2 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 638f7cfc88aa7e83259905c127723c0ecc5f26ea
|
4
|
+
data.tar.gz: cbfdb4fa89e30bfd374e850cf63933f753589cac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78c12824348df632bacb66983cc0d0bd582619af1bca973825d4dcc605b29b14f48d39ff6e8ab79bc880f802bf3937750b74c2314c949cc1aee244fc8c7af891
|
7
|
+
data.tar.gz: 83c3993bace242b2f05ec806f7a2ab8ef5fb478fe3acbdecb444e6be614ed92bc5a3d27f74ac3e0cf00b7be26e5190e831caaeb1f515ed8364770e162cf3837c
|
@@ -24,13 +24,12 @@ module MailHandler
|
|
24
24
|
|
25
25
|
DEFAULT_SEARCH_OPTIONS = [
|
26
26
|
|
27
|
-
:
|
27
|
+
:archive
|
28
28
|
]
|
29
29
|
|
30
30
|
def initialize
|
31
31
|
|
32
|
-
|
33
|
-
@search_options = {:count => 50, :archive => false}
|
32
|
+
base_search_options
|
34
33
|
reset_found_emails
|
35
34
|
|
36
35
|
end
|
@@ -47,12 +46,25 @@ module MailHandler
|
|
47
46
|
|
48
47
|
end
|
49
48
|
|
49
|
+
def reset_found_emails
|
50
|
+
|
51
|
+
@found_emails = []
|
52
|
+
|
53
|
+
end
|
54
|
+
|
50
55
|
protected
|
51
56
|
|
57
|
+
def base_search_options
|
58
|
+
|
59
|
+
# Default number of email results to return, and whether to archive emails.
|
60
|
+
@search_options = {:count => 50, :archive => false}
|
61
|
+
|
62
|
+
end
|
63
|
+
|
52
64
|
def verify_and_set_search_options(options)
|
53
65
|
|
66
|
+
base_search_options
|
54
67
|
validate_used_options(options)
|
55
|
-
validate_mandatory_options(options)
|
56
68
|
|
57
69
|
@search_options = search_options.merge options
|
58
70
|
reset_found_emails
|
@@ -67,24 +79,6 @@ module MailHandler
|
|
67
79
|
|
68
80
|
end
|
69
81
|
|
70
|
-
def validate_mandatory_options(options)
|
71
|
-
|
72
|
-
search = AVAILABLE_SEARCH_OPTIONS - DEFAULT_SEARCH_OPTIONS
|
73
|
-
|
74
|
-
unless search.any? { |e| options[e] != nil }
|
75
|
-
|
76
|
-
raise StandardError, "At least one of the following search options has to be used: #{search}"
|
77
|
-
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
def reset_found_emails
|
83
|
-
|
84
|
-
@found_emails = []
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
82
|
end
|
89
83
|
|
90
84
|
end
|
@@ -85,14 +85,16 @@ module MailHandler
|
|
85
85
|
|
86
86
|
if options[:archive]
|
87
87
|
|
88
|
-
Mail.find_and_delete(:what => :last, :count => search_options[:count], :order => :desc, :keys => imap_filter_keys(options))
|
88
|
+
result = Mail.find_and_delete(:what => :last, :count => search_options[:count], :order => :desc, :keys => imap_filter_keys(options))
|
89
89
|
|
90
90
|
else
|
91
91
|
|
92
|
-
Mail.find(:what => :last, :count => search_options[:count], :order => :desc, :keys => imap_filter_keys(options))
|
92
|
+
result = Mail.find(:what => :last, :count => search_options[:count], :order => :desc, :keys => imap_filter_keys(options))
|
93
93
|
|
94
94
|
end
|
95
95
|
|
96
|
+
(result.kind_of? Array)? result : [result]
|
97
|
+
|
96
98
|
end
|
97
99
|
|
98
100
|
def imap_filter_keys(options)
|
@@ -111,11 +113,15 @@ module MailHandler
|
|
111
113
|
|
112
114
|
keys << 'SUBJECT' << options[:by_subject]
|
113
115
|
|
116
|
+
else
|
117
|
+
|
118
|
+
|
114
119
|
end
|
115
120
|
|
116
121
|
end
|
117
122
|
|
118
|
-
keys
|
123
|
+
(keys.empty?)? nil : keys
|
124
|
+
|
119
125
|
|
120
126
|
end
|
121
127
|
|
data/lib/mailhandler/version.rb
CHANGED
data/mailhandler.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = 'MIT'
|
12
12
|
|
13
13
|
s.authors = ["Igor Balos"]
|
14
|
-
s.email = "ibalosh@gmail.com"
|
14
|
+
s.email = ["ibalosh@gmail.com", "igor@wildbit.com"]
|
15
15
|
|
16
16
|
s.summary = "Postmark email receiving and sending handler."
|
17
17
|
s.description = "Use this gem to send emails through SMTP and Postmark API. Check if email arrived by imap or folder check."
|
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.files = `git ls-files`.split($/)
|
21
21
|
s.test_files = `git ls-files -- {spec}/*`.split("\n")
|
22
|
-
s.homepage = 'https://github.com/
|
22
|
+
s.homepage = 'https://github.com/wildbit'
|
23
23
|
s.require_paths = ["lib"]
|
24
24
|
|
25
25
|
s.post_install_message = %q{
|
data/readme.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# MailHandler Gem
|
2
2
|
|
3
|
-
[](https://travis-ci.org/wildbit/mailhandler)
|
4
4
|
|
5
5
|
MailHandler is a simple wrapper for [mail](https://github.com/mikel/mail) and [postmark](https://github.com/wildbit/postmark-gem) libraries which allows you to send and retrieve emails,
|
6
6
|
and get more details about email sending and delivery. Main purpose of the gem is easier email sending/delivery testing.
|
@@ -41,7 +41,7 @@ If you plan to check for an email in your inbox which support IMAP, you can use
|
|
41
41
|
|
42
42
|
``` ruby
|
43
43
|
email_receiver = MailHandler.receiver(:imap) do |checker|
|
44
|
-
checker.address = 'imap.
|
44
|
+
checker.address = 'imap.example.com'
|
45
45
|
checker.port = 993
|
46
46
|
checker.username = 'username'
|
47
47
|
checker.password = 'password'
|
@@ -13,6 +13,7 @@ describe MailHandler::Receiver do
|
|
13
13
|
allow(checker).to receive(:find) { sleep receiving_duration; true }
|
14
14
|
allow(checker).to receive(:search_result) { true }
|
15
15
|
allow(checker).to receive(:found_emails) { [found_email] }
|
16
|
+
allow(checker).to receive(:reset_found_emails) { [] }
|
16
17
|
checker
|
17
18
|
|
18
19
|
}
|
@@ -70,6 +71,7 @@ describe MailHandler::Receiver do
|
|
70
71
|
allow(checker).to receive(:find) { sleep 1; false }
|
71
72
|
allow(checker).to receive(:search_result) { false }
|
72
73
|
allow(checker).to receive(:found_emails) { [] }
|
74
|
+
allow(checker).to receive(:reset_found_emails) { [] }
|
73
75
|
checker
|
74
76
|
|
75
77
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mailhandler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Balos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mail
|
@@ -46,7 +46,9 @@ dependencies:
|
|
46
46
|
version: 1.7.0
|
47
47
|
description: Use this gem to send emails through SMTP and Postmark API. Check if email
|
48
48
|
arrived by imap or folder check.
|
49
|
-
email:
|
49
|
+
email:
|
50
|
+
- ibalosh@gmail.com
|
51
|
+
- igor@wildbit.com
|
50
52
|
executables: []
|
51
53
|
extensions: []
|
52
54
|
extra_rdoc_files: []
|
@@ -88,7 +90,7 @@ files:
|
|
88
90
|
- spec/unit/mailhandler/sending/sender_api_batch_spec.rb
|
89
91
|
- spec/unit/mailhandler/sending/sender_api_spec.rb
|
90
92
|
- spec/unit/mailhandler_spec.rb
|
91
|
-
homepage: https://github.com/
|
93
|
+
homepage: https://github.com/wildbit
|
92
94
|
licenses:
|
93
95
|
- MIT
|
94
96
|
metadata: {}
|