remailer 0.5.2 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|