tuktuk 0.4.4 → 0.4.5
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.
- data/lib/tuktuk/tuktuk.rb +8 -3
- data/lib/tuktuk/version.rb +1 -1
- metadata +98 -78
data/lib/tuktuk/tuktuk.rb
CHANGED
@@ -12,6 +12,7 @@ DEFAULTS = {
|
|
12
12
|
:max_workers => 0,
|
13
13
|
:read_timeout => 20,
|
14
14
|
:open_timeout => 20,
|
15
|
+
:helo_domain => nil,
|
15
16
|
:verify_ssl => true,
|
16
17
|
:log_to => nil # $stdout,
|
17
18
|
}
|
@@ -93,6 +94,7 @@ module Tuktuk
|
|
93
94
|
raise "Invalid destination count: #{mail.destinations.count}" if mail.destinations.count != 1
|
94
95
|
|
95
96
|
if to = mail.destinations.first and domain = get_domain(to)
|
97
|
+
domain = domain.downcase
|
96
98
|
hash[domain] = [] if hash[domain].nil?
|
97
99
|
hash[domain].push(mail)
|
98
100
|
end
|
@@ -136,7 +138,7 @@ module Tuktuk
|
|
136
138
|
end
|
137
139
|
|
138
140
|
def lookup_and_deliver_many(by_domain)
|
139
|
-
if config[:max_workers] && config[:max_workers]
|
141
|
+
if config[:max_workers] && config[:max_workers] != 0
|
140
142
|
lookup_and_deliver_many_threaded(by_domain)
|
141
143
|
else
|
142
144
|
lookup_and_deliver_many_sync(by_domain)
|
@@ -144,7 +146,8 @@ module Tuktuk
|
|
144
146
|
end
|
145
147
|
|
146
148
|
def lookup_and_deliver_many_threaded(by_domain)
|
147
|
-
|
149
|
+
count = config[:max_workers].is_a?(Integer) ? config[:max_workers] : nil
|
150
|
+
queue = WorkQueue.new(count)
|
148
151
|
responses = []
|
149
152
|
|
150
153
|
by_domain.each do |domain, mails|
|
@@ -157,7 +160,8 @@ module Tuktuk
|
|
157
160
|
end # worker
|
158
161
|
end
|
159
162
|
|
160
|
-
queue.join
|
163
|
+
queue.join # wait for threads to finish
|
164
|
+
queue.kill # terminate queue
|
161
165
|
responses
|
162
166
|
end
|
163
167
|
|
@@ -230,6 +234,7 @@ module Tuktuk
|
|
230
234
|
unless timeout_error
|
231
235
|
begin
|
232
236
|
resp = smtp.send_message(get_raw_mail(mail), get_from(mail), mail.to)
|
237
|
+
smtp.send(:getok, 'RSET') if server['hotmail'] # fix for '503 Sender already specified'
|
233
238
|
rescue Net::SMTPError, EOFError, Timeout::Error => e # may be Net::SMTPFatalError (550 Mailbox not found)
|
234
239
|
# logger.error e.inspect
|
235
240
|
timeout_error = e if e.is_a?(Timeout::Error)
|
data/lib/tuktuk/version.rb
CHANGED
metadata
CHANGED
@@ -1,103 +1,111 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: tuktuk
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 5
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 4
|
9
|
+
- 5
|
10
|
+
version: 0.4.5
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
-
|
12
|
+
authors:
|
13
|
+
- "Tom\xC3\xA1s Pollak"
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-05-19 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: bundler
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 1.0.0
|
22
|
-
type: :development
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 23
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 0
|
32
|
+
- 0
|
29
33
|
version: 1.0.0
|
30
|
-
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
31
37
|
name: net-dns
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - '='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 0.6.1
|
38
|
-
type: :runtime
|
39
38
|
prerelease: false
|
40
|
-
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
41
|
+
requirements:
|
42
|
+
- - "="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 5
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 6
|
48
|
+
- 1
|
45
49
|
version: 0.6.1
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: mail
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '2.3'
|
54
50
|
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: mail
|
55
54
|
prerelease: false
|
56
|
-
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
56
|
none: false
|
58
|
-
requirements:
|
57
|
+
requirements:
|
59
58
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
requirements:
|
67
|
-
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.0.2
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 5
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 3
|
64
|
+
version: "2.3"
|
70
65
|
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: dkim
|
71
69
|
prerelease: false
|
72
|
-
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
71
|
none: false
|
74
|
-
requirements:
|
72
|
+
requirements:
|
75
73
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 27
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
- 0
|
79
|
+
- 2
|
77
80
|
version: 0.0.2
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: work_queue
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 2.5.0
|
86
81
|
type: :runtime
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: work_queue
|
87
85
|
prerelease: false
|
88
|
-
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
87
|
none: false
|
90
|
-
requirements:
|
88
|
+
requirements:
|
91
89
|
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 27
|
92
|
+
segments:
|
93
|
+
- 2
|
94
|
+
- 5
|
95
|
+
- 0
|
93
96
|
version: 2.5.0
|
97
|
+
type: :runtime
|
98
|
+
version_requirements: *id005
|
94
99
|
description: Easy way of sending DKIM-signed emails from Ruby, no dependencies needed.
|
95
|
-
email:
|
100
|
+
email:
|
96
101
|
- tomas@forkhq.com
|
97
102
|
executables: []
|
103
|
+
|
98
104
|
extensions: []
|
105
|
+
|
99
106
|
extra_rdoc_files: []
|
100
|
-
|
107
|
+
|
108
|
+
files:
|
101
109
|
- .gitignore
|
102
110
|
- Gemfile
|
103
111
|
- README.md
|
@@ -111,26 +119,38 @@ files:
|
|
111
119
|
- tuktuk.gemspec
|
112
120
|
homepage: https://github.com/tomas/tuktuk
|
113
121
|
licenses: []
|
122
|
+
|
114
123
|
post_install_message:
|
115
124
|
rdoc_options: []
|
116
|
-
|
125
|
+
|
126
|
+
require_paths:
|
117
127
|
- lib
|
118
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
128
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
129
|
none: false
|
120
|
-
requirements:
|
121
|
-
- -
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
|
124
|
-
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
hash: 3
|
134
|
+
segments:
|
135
|
+
- 0
|
136
|
+
version: "0"
|
137
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
138
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
hash: 23
|
143
|
+
segments:
|
144
|
+
- 1
|
145
|
+
- 3
|
146
|
+
- 6
|
129
147
|
version: 1.3.6
|
130
148
|
requirements: []
|
149
|
+
|
131
150
|
rubyforge_project: tuktuk
|
132
|
-
rubygems_version: 1.8.
|
151
|
+
rubygems_version: 1.8.15
|
133
152
|
signing_key:
|
134
153
|
specification_version: 3
|
135
154
|
summary: SMTP client for Ruby with DKIM support.
|
136
155
|
test_files: []
|
156
|
+
|