remailer 0.5.2 → 0.9.1
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 +7 -0
- data/Gemfile +9 -0
- data/LICENSE.txt +19 -0
- data/{README.rdoc → README.md} +12 -11
- data/Rakefile +21 -11
- data/VERSION +1 -1
- data/lib/remailer/abstract_connection.rb +36 -20
- data/lib/remailer/imap/client.rb +1 -1
- data/lib/remailer/interpreter.rb +40 -19
- data/lib/remailer/interpreter/state_proxy.rb +1 -1
- data/lib/remailer/smtp/client.rb +20 -26
- data/lib/remailer/smtp/client/interpreter.rb +85 -12
- data/lib/remailer/smtp/server.rb +9 -4
- data/lib/remailer/smtp/server/interpreter.rb +16 -15
- data/lib/remailer/smtp/server/transaction.rb +9 -2
- data/lib/remailer/socks5/client/interpreter.rb +18 -13
- data/remailer.gemspec +33 -23
- data/test/bin/exercise +115 -0
- data/test/config.example.yml +15 -0
- data/test/config.rb +41 -0
- data/test/helper.rb +42 -23
- data/test/unit/remailer_imap_client_interpreter_test.rb +2 -2
- data/test/unit/remailer_imap_client_test.rb +10 -12
- data/test/unit/remailer_interpreter_state_proxy_test.rb +14 -14
- data/test/unit/remailer_interpreter_test.rb +36 -28
- data/test/unit/remailer_smtp_client_interpreter_test.rb +80 -33
- data/test/unit/remailer_smtp_client_test.rb +53 -55
- data/test/unit/remailer_smtp_server_test.rb +24 -18
- data/test/unit/remailer_socks5_client_interpreter_test.rb +71 -10
- data/test/unit/remailer_test.rb +2 -2
- metadata +66 -24
- data/test/config.example.rb +0 -17
@@ -1,13 +1,16 @@
|
|
1
|
-
|
1
|
+
require_relative '../helper'
|
2
2
|
|
3
|
-
class
|
4
|
-
attr_accessor :options, :protocol, :active_message
|
3
|
+
class TestSMTPDelegate
|
4
|
+
attr_accessor :options, :protocol, :active_message, :auth_support
|
5
5
|
attr_accessor :tls_support
|
6
6
|
|
7
7
|
def initialize(options = { })
|
8
8
|
@sent = [ ]
|
9
9
|
@options = options
|
10
10
|
@protocol = :smtp
|
11
|
+
@started_tls = false
|
12
|
+
@tls_support = nil
|
13
|
+
@closed = false
|
11
14
|
end
|
12
15
|
|
13
16
|
def hostname
|
@@ -57,12 +60,21 @@ class SMTPDelegate
|
|
57
60
|
def read
|
58
61
|
@sent.shift
|
59
62
|
end
|
63
|
+
|
64
|
+
def auth_support?(type = nil)
|
65
|
+
case (type)
|
66
|
+
when nil
|
67
|
+
!!@auth_support
|
68
|
+
else
|
69
|
+
!!(@auth_support&.include?(type))
|
70
|
+
end
|
71
|
+
end
|
60
72
|
|
61
73
|
def method_missing(*args)
|
62
74
|
end
|
63
75
|
end
|
64
76
|
|
65
|
-
class RemailerSMTPClientInterpreterTest < Test
|
77
|
+
class RemailerSMTPClientInterpreterTest < MiniTest::Test
|
66
78
|
def test_split_reply
|
67
79
|
assert_mapping(
|
68
80
|
'250 OK' => [ 250, 'OK' ],
|
@@ -119,28 +131,28 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
119
131
|
end
|
120
132
|
|
121
133
|
def test_delegate_default_state
|
122
|
-
delegate =
|
134
|
+
delegate = TestSMTPDelegate.new
|
123
135
|
|
124
136
|
assert_equal false, delegate.closed?
|
125
|
-
|
137
|
+
assert_nil delegate.read
|
126
138
|
assert_equal 0, delegate.size
|
127
139
|
end
|
128
140
|
|
129
141
|
def test_delegate_options
|
130
|
-
delegate =
|
142
|
+
delegate = TestSMTPDelegate.new(use_tls: true)
|
131
143
|
|
132
144
|
assert_equal true, delegate.use_tls?
|
133
145
|
assert_equal false, delegate.requires_authentication?
|
134
146
|
|
135
|
-
delegate =
|
147
|
+
delegate = TestSMTPDelegate.new(username: 'test@example.com', password: 'tester')
|
136
148
|
|
137
149
|
assert_equal false, delegate.use_tls?
|
138
150
|
assert_equal true, delegate.requires_authentication?
|
139
151
|
end
|
140
152
|
|
141
153
|
def test_standard_smtp_connection
|
142
|
-
delegate =
|
143
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
154
|
+
delegate = TestSMTPDelegate.new
|
155
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
144
156
|
|
145
157
|
assert_equal :initialized, interpreter.state
|
146
158
|
|
@@ -162,8 +174,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
162
174
|
end
|
163
175
|
|
164
176
|
def test_standard_smtp_connection_send_email
|
165
|
-
delegate =
|
166
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
177
|
+
delegate = TestSMTPDelegate.new
|
178
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
167
179
|
|
168
180
|
assert_equal :initialized, interpreter.state
|
169
181
|
|
@@ -184,9 +196,9 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
184
196
|
assert_equal true, delegate.closed?
|
185
197
|
|
186
198
|
delegate.active_message = {
|
187
|
-
:
|
188
|
-
:
|
189
|
-
:
|
199
|
+
from: 'from@example.com',
|
200
|
+
to: 'to@example.com',
|
201
|
+
data: "Subject: Test Message\r\n\r\nThis is a message!\r\n"
|
190
202
|
}
|
191
203
|
|
192
204
|
interpreter.enter_state(:send)
|
@@ -217,8 +229,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
217
229
|
end
|
218
230
|
|
219
231
|
def test_standard_esmtp_connection
|
220
|
-
delegate =
|
221
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
232
|
+
delegate = TestSMTPDelegate.new
|
233
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
222
234
|
|
223
235
|
assert_equal :initialized, interpreter.state
|
224
236
|
|
@@ -254,8 +266,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
254
266
|
end
|
255
267
|
|
256
268
|
def test_multi_line_hello_response
|
257
|
-
delegate =
|
258
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
269
|
+
delegate = TestSMTPDelegate.new(use_tls: true)
|
270
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
259
271
|
|
260
272
|
assert_equal :initialized, interpreter.state
|
261
273
|
assert_equal :smtp, delegate.protocol
|
@@ -276,8 +288,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
276
288
|
end
|
277
289
|
|
278
290
|
def test_tls_connection_with_support
|
279
|
-
delegate =
|
280
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
291
|
+
delegate = TestSMTPDelegate.new(use_tls: true)
|
292
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
281
293
|
|
282
294
|
assert_equal true, delegate.use_tls?
|
283
295
|
assert_equal :initialized, interpreter.state
|
@@ -307,8 +319,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
307
319
|
end
|
308
320
|
|
309
321
|
def test_tls_connection_without_support
|
310
|
-
delegate =
|
311
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
322
|
+
delegate = TestSMTPDelegate.new(use_tls: true)
|
323
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
312
324
|
|
313
325
|
interpreter.process("220 mail.example.com ESMTP Exim 4.63\r\n")
|
314
326
|
assert_equal 'EHLO localhost.local', delegate.read
|
@@ -322,8 +334,8 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
322
334
|
end
|
323
335
|
|
324
336
|
def test_basic_smtp_plaintext_auth_accepted
|
325
|
-
delegate =
|
326
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
337
|
+
delegate = TestSMTPDelegate.new(username: 'tester@example.com', password: 'tester')
|
338
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
327
339
|
|
328
340
|
assert delegate.requires_authentication?
|
329
341
|
|
@@ -347,14 +359,15 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
347
359
|
assert_equal :ready, interpreter.state
|
348
360
|
end
|
349
361
|
|
350
|
-
def
|
351
|
-
delegate =
|
352
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
362
|
+
def test_basic_esmtp_auth_plain_accepted
|
363
|
+
delegate = TestSMTPDelegate.new(username: 'tester@example.com', password: 'tester')
|
364
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
353
365
|
|
354
366
|
interpreter.process("220 mail.example.com ESMTP Exim 4.63\r\n")
|
355
367
|
assert_equal 'EHLO localhost.local', delegate.read
|
356
368
|
|
357
369
|
interpreter.process("250-mail.example.com Hello\r\n")
|
370
|
+
interpreter.process("250-AUTH PLAIN\r\n")
|
358
371
|
interpreter.process("250 HELP\r\n")
|
359
372
|
|
360
373
|
assert_equal false, delegate.started_tls?
|
@@ -367,17 +380,19 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
367
380
|
assert_equal :ready, interpreter.state
|
368
381
|
end
|
369
382
|
|
370
|
-
def
|
371
|
-
delegate =
|
372
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
383
|
+
def test_basic_esmtp_auth_plain_rejected
|
384
|
+
delegate = TestSMTPDelegate.new(username: 'tester@example.com', password: 'tester')
|
385
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
373
386
|
|
374
387
|
interpreter.process("220 mx.google.com ESMTP\r\n")
|
375
388
|
assert_equal 'EHLO localhost.local', delegate.read
|
376
389
|
|
377
390
|
interpreter.process("250-mx.google.com at your service\r\n")
|
391
|
+
interpreter.process("250-AUTH PLAIN LOGIN\r\n")
|
378
392
|
interpreter.process("250 HELP\r\n")
|
379
393
|
|
380
394
|
assert_equal false, delegate.started_tls?
|
395
|
+
assert_equal %i[ plain login ], delegate.auth_support.to_a
|
381
396
|
|
382
397
|
assert_equal :auth, interpreter.state
|
383
398
|
assert_equal "AUTH PLAIN AHRlc3RlckBleGFtcGxlLmNvbQB0ZXN0ZXI=", delegate.read
|
@@ -395,9 +410,41 @@ class RemailerSMTPClientInterpreterTest < Test::Unit::TestCase
|
|
395
410
|
assert_equal true, delegate.closed?
|
396
411
|
end
|
397
412
|
|
413
|
+
def test_basic_esmtp_auth_login_accepted
|
414
|
+
delegate = TestSMTPDelegate.new(username: 'tester@example.com', password: 'tester')
|
415
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
416
|
+
|
417
|
+
interpreter.process("220 mail.example.com ESMTP Exim 4.63\r\n")
|
418
|
+
assert_equal 'EHLO localhost.local', delegate.read
|
419
|
+
|
420
|
+
interpreter.process("250-mail.example.com Hello\r\n")
|
421
|
+
interpreter.process("250-AUTH NTLM CRAM-MD5 GSSAPI LOGIN\r\n")
|
422
|
+
interpreter.process("250 HELP\r\n")
|
423
|
+
|
424
|
+
assert_equal false, delegate.started_tls?
|
425
|
+
assert_equal %i[ ntlm cram-md5 gssapi login ], delegate.auth_support.to_a
|
426
|
+
|
427
|
+
assert_equal "AUTH LOGIN", delegate.read
|
428
|
+
|
429
|
+
assert_equal :auth_username, interpreter.state
|
430
|
+
interpreter.process("334 VXNlcm5hbWU6\r\n")
|
431
|
+
assert_equal Base64.strict_encode64('tester@example.com'), delegate.read
|
432
|
+
|
433
|
+
assert_equal :auth_password, interpreter.state
|
434
|
+
|
435
|
+
interpreter.process("334 UGFzc3dvcmQ6\r\n")
|
436
|
+
assert_equal Base64.strict_encode64('tester'), delegate.read
|
437
|
+
|
438
|
+
assert_equal :auth_acknowledge, interpreter.state
|
439
|
+
interpreter.process("235 Sounds good\r\n")
|
440
|
+
|
441
|
+
assert_equal :ready, interpreter.state
|
442
|
+
end
|
443
|
+
|
444
|
+
|
398
445
|
def test_unexpected_response
|
399
|
-
delegate =
|
400
|
-
interpreter = Remailer::SMTP::Client::Interpreter.new(:
|
446
|
+
delegate = TestSMTPDelegate.new(username: 'tester@example.com', password: 'tester')
|
447
|
+
interpreter = Remailer::SMTP::Client::Interpreter.new(delegate: delegate)
|
401
448
|
|
402
449
|
interpreter.process("530 Go away\r\n")
|
403
450
|
|
@@ -1,15 +1,14 @@
|
|
1
|
-
|
1
|
+
require_relative '../helper'
|
2
2
|
|
3
|
-
class RemailerSMTPClientTest < Test
|
3
|
+
class RemailerSMTPClientTest < MiniTest::Test
|
4
4
|
def test_connect
|
5
5
|
engine do
|
6
|
-
debug = { }
|
7
6
|
connected_host = nil
|
8
7
|
|
9
8
|
connection = Remailer::SMTP::Client.open(
|
10
|
-
TestConfig.
|
11
|
-
:
|
12
|
-
:
|
9
|
+
TestConfig.options[:public_smtp_server][:host],
|
10
|
+
debug: self.debug_channel,
|
11
|
+
connect: lambda { |success, host| connected_host = host }
|
13
12
|
)
|
14
13
|
|
15
14
|
after_complete_trigger = false
|
@@ -27,11 +26,11 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
27
26
|
connection.closed?
|
28
27
|
end
|
29
28
|
|
30
|
-
assert_equal TestConfig.
|
29
|
+
assert_equal TestConfig.options[:public_smtp_server][:identifier], connected_host
|
31
30
|
|
32
31
|
assert_equal true, after_complete_trigger
|
33
32
|
|
34
|
-
assert_equal
|
33
|
+
assert_equal 157286400, connection.max_size
|
35
34
|
assert_equal :esmtp, connection.protocol
|
36
35
|
assert_equal true, connection.tls_support?
|
37
36
|
end
|
@@ -45,13 +44,13 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
45
44
|
|
46
45
|
connection = Remailer::SMTP::Client.open(
|
47
46
|
'example.com',
|
48
|
-
:
|
49
|
-
:
|
47
|
+
debug: self.debug_channel,
|
48
|
+
error: lambda { |code, message|
|
50
49
|
error_received = [ code, message ]
|
51
50
|
},
|
52
|
-
:
|
53
|
-
:
|
54
|
-
:
|
51
|
+
on_connect: lambda { on_connect = true },
|
52
|
+
on_error: lambda { on_error = true },
|
53
|
+
timeout: 1
|
55
54
|
)
|
56
55
|
|
57
56
|
assert_eventually(3) do
|
@@ -70,13 +69,13 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
70
69
|
engine do
|
71
70
|
error_received = nil
|
72
71
|
|
73
|
-
|
72
|
+
Remailer::SMTP::Client.open(
|
74
73
|
'invalid-example-domain--x.com',
|
75
|
-
:
|
76
|
-
:
|
74
|
+
debug: self.debug_channel,
|
75
|
+
error: lambda { |code, message|
|
77
76
|
error_received = [ code, message ]
|
78
77
|
},
|
79
|
-
:
|
78
|
+
timeout: 1
|
80
79
|
)
|
81
80
|
|
82
81
|
assert_eventually(3) do
|
@@ -89,14 +88,12 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
89
88
|
|
90
89
|
def test_connect_with_auth
|
91
90
|
engine do
|
92
|
-
debug = { }
|
93
|
-
|
94
91
|
connection = Remailer::SMTP::Client.open(
|
95
|
-
TestConfig.
|
96
|
-
:
|
97
|
-
:
|
98
|
-
:
|
99
|
-
:
|
92
|
+
TestConfig.options[:smtp_server][:host],
|
93
|
+
port: TestConfig.options[:smtp_server][:port] || Remailer::SMTP::Client::SMTP_PORT,
|
94
|
+
debug: self.debug_channel,
|
95
|
+
username: TestConfig.options[:smtp_server][:username],
|
96
|
+
password: TestConfig.options[:smtp_server][:password]
|
100
97
|
)
|
101
98
|
|
102
99
|
after_complete_trigger = false
|
@@ -113,11 +110,11 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
113
110
|
connection.closed?
|
114
111
|
end
|
115
112
|
|
116
|
-
assert_equal TestConfig.
|
113
|
+
assert_equal TestConfig.options[:smtp_server][:identifier], connection.remote
|
117
114
|
|
118
115
|
assert_equal true, after_complete_trigger
|
119
116
|
|
120
|
-
assert_equal
|
117
|
+
assert_equal 35882577, connection.max_size
|
121
118
|
assert_equal :esmtp, connection.protocol
|
122
119
|
assert_equal true, connection.tls_support?
|
123
120
|
end
|
@@ -125,14 +122,12 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
125
122
|
|
126
123
|
def test_connect_via_proxy
|
127
124
|
engine do
|
128
|
-
debug = { }
|
129
|
-
|
130
125
|
connection = Remailer::SMTP::Client.open(
|
131
|
-
TestConfig.
|
132
|
-
:
|
133
|
-
:
|
134
|
-
:
|
135
|
-
:
|
126
|
+
TestConfig.options[:public_smtp_server][:host],
|
127
|
+
debug: self.debug_channel,
|
128
|
+
proxy: {
|
129
|
+
proto: :socks5,
|
130
|
+
host: TestConfig.options[:proxy_server]
|
136
131
|
}
|
137
132
|
)
|
138
133
|
|
@@ -143,18 +138,18 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
143
138
|
after_complete_trigger = true
|
144
139
|
end
|
145
140
|
|
146
|
-
assert_equal :
|
141
|
+
assert_equal :initialized, connection.state
|
147
142
|
assert !connection.error?
|
148
143
|
|
149
144
|
assert_eventually(15) do
|
150
145
|
connection.closed?
|
151
146
|
end
|
152
147
|
|
153
|
-
assert_equal TestConfig.
|
148
|
+
assert_equal TestConfig.options[:public_smtp_server][:identifier], connection.remote
|
154
149
|
|
155
150
|
assert_equal true, after_complete_trigger
|
156
151
|
|
157
|
-
assert_equal
|
152
|
+
assert_equal 157286400, connection.max_size
|
158
153
|
assert_equal :esmtp, connection.protocol
|
159
154
|
assert_equal true, connection.tls_support?
|
160
155
|
end
|
@@ -163,8 +158,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
163
158
|
def test_connect_and_send_after_start
|
164
159
|
engine do
|
165
160
|
connection = Remailer::SMTP::Client.open(
|
166
|
-
TestConfig.
|
167
|
-
:
|
161
|
+
TestConfig.options[:public_smtp_server][:host],
|
162
|
+
debug: self.debug_channel
|
168
163
|
)
|
169
164
|
|
170
165
|
assert_equal :initialized, connection.state
|
@@ -177,8 +172,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
177
172
|
callback_received = false
|
178
173
|
|
179
174
|
connection.send_email(
|
180
|
-
|
181
|
-
|
175
|
+
TestConfig.options[:sender],
|
176
|
+
TestConfig.options[:recipient],
|
182
177
|
example_message
|
183
178
|
) do |c|
|
184
179
|
callback_received = true
|
@@ -196,8 +191,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
196
191
|
def test_connect_and_send_dotted_message
|
197
192
|
engine do
|
198
193
|
connection = Remailer::SMTP::Client.open(
|
199
|
-
TestConfig.
|
200
|
-
:
|
194
|
+
TestConfig.options[:public_smtp_server][:host],
|
195
|
+
debug: self.debug_channel
|
201
196
|
)
|
202
197
|
|
203
198
|
assert_equal :initialized, connection.state
|
@@ -205,8 +200,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
205
200
|
|
206
201
|
result_code = nil
|
207
202
|
connection.send_email(
|
208
|
-
|
209
|
-
|
203
|
+
TestConfig.options[:sender],
|
204
|
+
TestConfig.options[:recipient],
|
210
205
|
example_message + "\r\n\.\r\nHam sandwich.\r\n"
|
211
206
|
) do |c|
|
212
207
|
result_code = c
|
@@ -221,8 +216,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
221
216
|
def test_connect_and_send_multiple
|
222
217
|
engine do
|
223
218
|
connection = Remailer::SMTP::Client.open(
|
224
|
-
TestConfig.
|
225
|
-
:
|
219
|
+
TestConfig.options[:public_smtp_server][:host],
|
220
|
+
debug: self.debug_channel
|
226
221
|
)
|
227
222
|
|
228
223
|
assert_equal :initialized, connection.state
|
@@ -231,9 +226,12 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
231
226
|
result_code = [ ]
|
232
227
|
|
233
228
|
10.times do |n|
|
229
|
+
recipient_parts = TestConfig.options[:sender].split(/@/)
|
230
|
+
recipient_parts.insert(1, n)
|
231
|
+
|
234
232
|
connection.send_email(
|
235
|
-
|
236
|
-
|
233
|
+
TestConfig.options[:sender],
|
234
|
+
'%s+%d@%s' % recipient_parts,
|
237
235
|
example_message
|
238
236
|
) do |c|
|
239
237
|
result_code[n] = c
|
@@ -249,8 +247,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
249
247
|
def test_connect_and_long_send
|
250
248
|
engine do
|
251
249
|
connection = Remailer::SMTP::Client.open(
|
252
|
-
TestConfig.
|
253
|
-
:
|
250
|
+
TestConfig.options[:public_smtp_server][:host],
|
251
|
+
debug: self.debug_channel
|
254
252
|
)
|
255
253
|
|
256
254
|
assert_equal :initialized, connection.state
|
@@ -259,8 +257,8 @@ class RemailerSMTPClientTest < Test::Unit::TestCase
|
|
259
257
|
result_code = nil
|
260
258
|
|
261
259
|
connection.send_email(
|
262
|
-
TestConfig.sender,
|
263
|
-
TestConfig.recipient,
|
260
|
+
TestConfig.options[:sender],
|
261
|
+
TestConfig.options[:recipient],
|
264
262
|
example_message + 'a' * 100000
|
265
263
|
) do |c|
|
266
264
|
callback_made = true
|
@@ -279,9 +277,9 @@ protected
|
|
279
277
|
def example_message
|
280
278
|
example = <<__END__
|
281
279
|
Date: Sat, 13 Nov 2010 02:25:24 +0000
|
282
|
-
From: #{TestConfig.sender}
|
283
|
-
To: Remailer Test <#{TestConfig.receiver}>
|
284
|
-
Message-Id: <hfLkcIByfjYoNIxCO7DMsxBTX9svsFHikIOfAiYy@#{TestConfig.sender.split(/@/).last}>
|
280
|
+
From: #{TestConfig.options[:sender]}
|
281
|
+
To: Remailer Test <#{TestConfig.options[:receiver]}>
|
282
|
+
Message-Id: <hfLkcIByfjYoNIxCO7DMsxBTX9svsFHikIOfAiYy@#{TestConfig.options[:sender].split(/@/).last}>
|
285
283
|
Subject: Example Subject
|
286
284
|
Mime-Version: 1.0
|
287
285
|
Content-Type: text/plain
|