mail_relay 0.1.0

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.
Files changed (56) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +73 -0
  3. data/Rakefile +22 -0
  4. data/lib/mail_relay.rb +5 -0
  5. data/lib/mail_relay/base.rb +149 -0
  6. data/lib/mail_relay/version.rb +3 -0
  7. data/spec/base_spec.rb +113 -0
  8. data/spec/coverage/assets/0.7.1/application.css +1110 -0
  9. data/spec/coverage/assets/0.7.1/application.js +626 -0
  10. data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  11. data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  12. data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  13. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  14. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  15. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  16. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  17. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  18. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  19. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  20. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  21. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  22. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  23. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  24. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  25. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  26. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  27. data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  28. data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  29. data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  30. data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
  31. data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
  32. data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  33. data/spec/coverage/assets/0.7.1/loading.gif +0 -0
  34. data/spec/coverage/assets/0.7.1/magnify.png +0 -0
  35. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  36. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  37. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  38. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  39. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  40. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  41. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  42. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  43. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  44. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  45. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  46. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  47. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  48. data/spec/coverage/index.html +1052 -0
  49. data/spec/fixtures/list.eml +35 -0
  50. data/spec/fixtures/list.eml~ +36 -0
  51. data/spec/fixtures/regular.eml +35 -0
  52. data/spec/fixtures/regular.eml~ +66 -0
  53. data/spec/fixtures/simple.eml +15 -0
  54. data/spec/fixtures/simple.eml~ +15 -0
  55. data/spec/spec_helper.rb +19 -0
  56. metadata +252 -0
@@ -0,0 +1,1052 @@
1
+ <!DOCTYPE html>
2
+ <html xmlns='http://www.w3.org/1999/xhtml'>
3
+ <head>
4
+ <title>Code coverage for Mail relay</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
6
+ <script src='./assets/0.7.1/application.js' type='text/javascript'></script>
7
+ <link href='./assets/0.7.1/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
8
+ <link rel="shortcut icon" type="image/png" href="./assets/0.7.1/favicon_green.png" />
9
+ <link rel="icon" type="image/png" href="./assets/0.7.1/favicon.png" />
10
+ </head>
11
+
12
+ <body>
13
+ <div id="loading">
14
+ <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
+ </div>
16
+ <div id="wrapper" style="display:none;">
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-02-19T16:30:45+01:00">2013-02-19T16:30:45+01:00</abbr></div>
18
+ <ul class="group_tabs"></ul>
19
+
20
+ <div id="content">
21
+ <div class="file_list_container" id="AllFiles">
22
+ <h2>
23
+ <span class="group_name">All Files</span>
24
+ (<span class="covered_percent"><span class="green">93.65%</span></span>
25
+ covered at
26
+ <span class="covered_strength">
27
+ <span class="green">
28
+ 1.9
29
+ </span>
30
+ </span> hits/line)
31
+ </h2>
32
+ <a name="AllFiles"></a>
33
+ <div>
34
+ <b>2</b> files in total.
35
+ <b>63</b> relevant lines.
36
+ <span class="green"><b>59</b> lines covered</span> and
37
+ <span class="red"><b>4</b> lines missed </span>
38
+ </div>
39
+ <table class="file_list">
40
+ <thead>
41
+ <tr>
42
+ <th>File</th>
43
+ <th>% covered</th>
44
+ <th>Lines</th>
45
+ <th>Relevant Lines</th>
46
+ <th>Lines covered</th>
47
+ <th>Lines missed</th>
48
+ <th>Avg. Hits / Line</th>
49
+ </tr>
50
+ </thead>
51
+ <tbody>
52
+
53
+ <tr>
54
+ <td class="strong"><a href="#81b9ff8fb92e597bd6b892fce5063f6205e4ab58" class="src_link" title="lib/mail_relay.rb">lib/mail_relay.rb</a></td>
55
+ <td class="green strong">100.0 %</td>
56
+ <td>5</td>
57
+ <td>3</td>
58
+ <td>3</td>
59
+ <td>0</td>
60
+ <td>1.0</td>
61
+ </tr>
62
+
63
+ <tr>
64
+ <td class="strong"><a href="#a9f9b6aa77b00f423cec0bce8b68b70ca9fb3191" class="src_link" title="lib/mail_relay/base.rb">lib/mail_relay/base.rb</a></td>
65
+ <td class="green strong">93.33 %</td>
66
+ <td>149</td>
67
+ <td>60</td>
68
+ <td>56</td>
69
+ <td>4</td>
70
+ <td>2.8</td>
71
+ </tr>
72
+
73
+ </tbody>
74
+ </table>
75
+ </div>
76
+
77
+
78
+
79
+ </div>
80
+
81
+ <div id="footer">
82
+ Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.7.1
83
+ and simplecov-html v0.7.1<br/>
84
+ using RSpec
85
+ </div>
86
+
87
+ <div class="source_files">
88
+
89
+ <div class="source_table" id="81b9ff8fb92e597bd6b892fce5063f6205e4ab58">
90
+ <div class="header">
91
+ <h3>lib/mail_relay.rb</h3>
92
+ <h4><span class="green">100.0 %</span> covered</h4>
93
+ <div>
94
+ <b>3</b> relevant lines.
95
+ <span class="green"><b>3</b> lines covered</span> and
96
+ <span class="red"><b>0</b> lines missed.</span>
97
+ </div>
98
+ </div>
99
+
100
+ <pre>
101
+ <ol>
102
+
103
+ <li class="covered" data-hits="1" data-linenumber="1">
104
+ <span class="hits">1</span>
105
+
106
+ <code class="ruby">require 'mail'</code>
107
+ </li>
108
+
109
+ <li class="covered" data-hits="1" data-linenumber="2">
110
+ <span class="hits">1</span>
111
+
112
+ <code class="ruby">require 'mail_relay/base'</code>
113
+ </li>
114
+
115
+ <li class="never" data-hits="" data-linenumber="3">
116
+
117
+
118
+ <code class="ruby"></code>
119
+ </li>
120
+
121
+ <li class="covered" data-hits="1" data-linenumber="4">
122
+ <span class="hits">1</span>
123
+
124
+ <code class="ruby">module MailRelay</code>
125
+ </li>
126
+
127
+ <li class="never" data-hits="" data-linenumber="5">
128
+
129
+
130
+ <code class="ruby">end</code>
131
+ </li>
132
+
133
+ </ol>
134
+ </pre>
135
+ </div>
136
+
137
+ <div class="source_table" id="a9f9b6aa77b00f423cec0bce8b68b70ca9fb3191">
138
+ <div class="header">
139
+ <h3>lib/mail_relay/base.rb</h3>
140
+ <h4><span class="green">93.33 %</span> covered</h4>
141
+ <div>
142
+ <b>60</b> relevant lines.
143
+ <span class="green"><b>56</b> lines covered</span> and
144
+ <span class="red"><b>4</b> lines missed.</span>
145
+ </div>
146
+ </div>
147
+
148
+ <pre>
149
+ <ol>
150
+
151
+ <li class="covered" data-hits="1" data-linenumber="1">
152
+ <span class="hits">1</span>
153
+
154
+ <code class="ruby">module MailRelay</code>
155
+ </li>
156
+
157
+ <li class="never" data-hits="" data-linenumber="2">
158
+
159
+
160
+ <code class="ruby"> # A generic email relay object. Retrieves messages from a mail server and resends them to a list of recievers.</code>
161
+ </li>
162
+
163
+ <li class="never" data-hits="" data-linenumber="3">
164
+
165
+
166
+ <code class="ruby"> # In subclasses, override the methods #relay_address?, #sender_allowed? and #receivers </code>
167
+ </li>
168
+
169
+ <li class="never" data-hits="" data-linenumber="4">
170
+
171
+
172
+ <code class="ruby"> # to constrain which mails are sent to whom.</code>
173
+ </li>
174
+
175
+ <li class="covered" data-hits="1" data-linenumber="5">
176
+ <span class="hits">1</span>
177
+
178
+ <code class="ruby"> class Base</code>
179
+ </li>
180
+
181
+ <li class="never" data-hits="" data-linenumber="6">
182
+
183
+
184
+ <code class="ruby"> </code>
185
+ </li>
186
+
187
+ <li class="covered" data-hits="1" data-linenumber="7">
188
+ <span class="hits">1</span>
189
+
190
+ <code class="ruby"> class &lt;&lt; self</code>
191
+ </li>
192
+
193
+ <li class="never" data-hits="" data-linenumber="8">
194
+
195
+
196
+ <code class="ruby"> # Define a header that contains the original receiver address.</code>
197
+ </li>
198
+
199
+ <li class="never" data-hits="" data-linenumber="9">
200
+
201
+
202
+ <code class="ruby"> # This header could be set by the mail server.</code>
203
+ </li>
204
+
205
+ <li class="covered" data-hits="1" data-linenumber="10">
206
+ <span class="hits">1</span>
207
+
208
+ <code class="ruby"> attr_accessor :receiver_header</code>
209
+ </li>
210
+
211
+ <li class="never" data-hits="" data-linenumber="11">
212
+
213
+
214
+ <code class="ruby"> </code>
215
+ </li>
216
+
217
+ <li class="never" data-hits="" data-linenumber="12">
218
+
219
+
220
+ <code class="ruby"> # Number of emails to retrieve in one batch.</code>
221
+ </li>
222
+
223
+ <li class="covered" data-hits="1" data-linenumber="13">
224
+ <span class="hits">1</span>
225
+
226
+ <code class="ruby"> attr_accessor :retrieve_count</code>
227
+ </li>
228
+
229
+ <li class="never" data-hits="" data-linenumber="14">
230
+
231
+
232
+ <code class="ruby"> </code>
233
+ </li>
234
+
235
+ <li class="never" data-hits="" data-linenumber="15">
236
+
237
+
238
+ <code class="ruby"> # Retrieve, process and delete all mails from the mail server.</code>
239
+ </li>
240
+
241
+ <li class="covered" data-hits="1" data-linenumber="16">
242
+ <span class="hits">1</span>
243
+
244
+ <code class="ruby"> def relay_current</code>
245
+ </li>
246
+
247
+ <li class="never" data-hits="" data-linenumber="17">
248
+
249
+
250
+ <code class="ruby"> begin</code>
251
+ </li>
252
+
253
+ <li class="covered" data-hits="3" data-linenumber="18">
254
+ <span class="hits">3</span>
255
+
256
+ <code class="ruby"> last_exception = nil</code>
257
+ </li>
258
+
259
+ <li class="never" data-hits="" data-linenumber="19">
260
+
261
+
262
+ <code class="ruby"> </code>
263
+ </li>
264
+
265
+ <li class="covered" data-hits="3" data-linenumber="20">
266
+ <span class="hits">3</span>
267
+
268
+ <code class="ruby"> mails = Mail.find_and_delete(:count =&gt; retrieve_count) do |message|</code>
269
+ </li>
270
+
271
+ <li class="covered" data-hits="13" data-linenumber="21">
272
+ <span class="hits">13</span>
273
+
274
+ <code class="ruby"> begin</code>
275
+ </li>
276
+
277
+ <li class="covered" data-hits="13" data-linenumber="22">
278
+ <span class="hits">13</span>
279
+
280
+ <code class="ruby"> new(message).relay</code>
281
+ </li>
282
+
283
+ <li class="never" data-hits="" data-linenumber="23">
284
+
285
+
286
+ <code class="ruby"> rescue Exception =&gt; e</code>
287
+ </li>
288
+
289
+ <li class="covered" data-hits="5" data-linenumber="24">
290
+ <span class="hits">5</span>
291
+
292
+ <code class="ruby"> last_exception = e</code>
293
+ </li>
294
+
295
+ <li class="never" data-hits="" data-linenumber="25">
296
+
297
+
298
+ <code class="ruby"> end</code>
299
+ </li>
300
+
301
+ <li class="never" data-hits="" data-linenumber="26">
302
+
303
+
304
+ <code class="ruby"> end</code>
305
+ </li>
306
+
307
+ <li class="never" data-hits="" data-linenumber="27">
308
+
309
+
310
+ <code class="ruby"> </code>
311
+ </li>
312
+
313
+ <li class="covered" data-hits="3" data-linenumber="28">
314
+ <span class="hits">3</span>
315
+
316
+ <code class="ruby"> raise(last_exception) if last_exception</code>
317
+ </li>
318
+
319
+ <li class="never" data-hits="" data-linenumber="29">
320
+
321
+
322
+ <code class="ruby"> </code>
323
+ </li>
324
+
325
+ <li class="covered" data-hits="2" data-linenumber="30">
326
+ <span class="hits">2</span>
327
+
328
+ <code class="ruby"> end while mails.size &gt;= retrieve_count</code>
329
+ </li>
330
+
331
+ <li class="never" data-hits="" data-linenumber="31">
332
+
333
+
334
+ <code class="ruby"> end</code>
335
+ </li>
336
+
337
+ <li class="never" data-hits="" data-linenumber="32">
338
+
339
+
340
+ <code class="ruby"> </code>
341
+ </li>
342
+
343
+ <li class="never" data-hits="" data-linenumber="33">
344
+
345
+
346
+ <code class="ruby"> end</code>
347
+ </li>
348
+
349
+ <li class="never" data-hits="" data-linenumber="34">
350
+
351
+
352
+ <code class="ruby"> </code>
353
+ </li>
354
+
355
+ <li class="covered" data-hits="1" data-linenumber="35">
356
+ <span class="hits">1</span>
357
+
358
+ <code class="ruby"> self.retrieve_count = 5</code>
359
+ </li>
360
+
361
+ <li class="covered" data-hits="1" data-linenumber="36">
362
+ <span class="hits">1</span>
363
+
364
+ <code class="ruby"> self.receiver_header = 'X-Envelope-To'</code>
365
+ </li>
366
+
367
+ <li class="never" data-hits="" data-linenumber="37">
368
+
369
+
370
+ <code class="ruby"> </code>
371
+ </li>
372
+
373
+ <li class="never" data-hits="" data-linenumber="38">
374
+
375
+
376
+ <code class="ruby"> </code>
377
+ </li>
378
+
379
+ <li class="covered" data-hits="1" data-linenumber="39">
380
+ <span class="hits">1</span>
381
+
382
+ <code class="ruby"> attr_reader :message</code>
383
+ </li>
384
+
385
+ <li class="never" data-hits="" data-linenumber="40">
386
+
387
+
388
+ <code class="ruby"> </code>
389
+ </li>
390
+
391
+ <li class="covered" data-hits="1" data-linenumber="41">
392
+ <span class="hits">1</span>
393
+
394
+ <code class="ruby"> def initialize(message)</code>
395
+ </li>
396
+
397
+ <li class="covered" data-hits="12" data-linenumber="42">
398
+ <span class="hits">12</span>
399
+
400
+ <code class="ruby"> @message = message</code>
401
+ </li>
402
+
403
+ <li class="never" data-hits="" data-linenumber="43">
404
+
405
+
406
+ <code class="ruby"> end</code>
407
+ </li>
408
+
409
+ <li class="never" data-hits="" data-linenumber="44">
410
+
411
+
412
+ <code class="ruby"> </code>
413
+ </li>
414
+
415
+ <li class="never" data-hits="" data-linenumber="45">
416
+
417
+
418
+ <code class="ruby"> # Process the given email.</code>
419
+ </li>
420
+
421
+ <li class="covered" data-hits="1" data-linenumber="46">
422
+ <span class="hits">1</span>
423
+
424
+ <code class="ruby"> def relay</code>
425
+ </li>
426
+
427
+ <li class="covered" data-hits="5" data-linenumber="47">
428
+ <span class="hits">5</span>
429
+
430
+ <code class="ruby"> if relay_address?</code>
431
+ </li>
432
+
433
+ <li class="covered" data-hits="5" data-linenumber="48">
434
+ <span class="hits">5</span>
435
+
436
+ <code class="ruby"> if sender_allowed?</code>
437
+ </li>
438
+
439
+ <li class="covered" data-hits="5" data-linenumber="49">
440
+ <span class="hits">5</span>
441
+
442
+ <code class="ruby"> resend_to(receivers)</code>
443
+ </li>
444
+
445
+ <li class="never" data-hits="" data-linenumber="50">
446
+
447
+
448
+ <code class="ruby"> else</code>
449
+ </li>
450
+
451
+ <li class="missed" data-hits="0" data-linenumber="51">
452
+
453
+
454
+ <code class="ruby"> reject_not_allowed</code>
455
+ </li>
456
+
457
+ <li class="never" data-hits="" data-linenumber="52">
458
+
459
+
460
+ <code class="ruby"> end</code>
461
+ </li>
462
+
463
+ <li class="never" data-hits="" data-linenumber="53">
464
+
465
+
466
+ <code class="ruby"> else</code>
467
+ </li>
468
+
469
+ <li class="missed" data-hits="0" data-linenumber="54">
470
+
471
+
472
+ <code class="ruby"> reject_not_existing</code>
473
+ </li>
474
+
475
+ <li class="never" data-hits="" data-linenumber="55">
476
+
477
+
478
+ <code class="ruby"> end</code>
479
+ </li>
480
+
481
+ <li class="never" data-hits="" data-linenumber="56">
482
+
483
+
484
+ <code class="ruby"> end</code>
485
+ </li>
486
+
487
+ <li class="never" data-hits="" data-linenumber="57">
488
+
489
+
490
+ <code class="ruby"> </code>
491
+ </li>
492
+
493
+ <li class="never" data-hits="" data-linenumber="58">
494
+
495
+
496
+ <code class="ruby"> # Send the same mail as is to all receivers, if any.</code>
497
+ </li>
498
+
499
+ <li class="covered" data-hits="1" data-linenumber="59">
500
+ <span class="hits">1</span>
501
+
502
+ <code class="ruby"> def resend_to(destinations)</code>
503
+ </li>
504
+
505
+ <li class="covered" data-hits="5" data-linenumber="60">
506
+ <span class="hits">5</span>
507
+
508
+ <code class="ruby"> if destinations.size &gt; 0</code>
509
+ </li>
510
+
511
+ <li class="covered" data-hits="4" data-linenumber="61">
512
+ <span class="hits">4</span>
513
+
514
+ <code class="ruby"> add_custom_message_destinations</code>
515
+ </li>
516
+
517
+ <li class="covered" data-hits="4" data-linenumber="62">
518
+ <span class="hits">4</span>
519
+
520
+ <code class="ruby"> message.destinations = destinations</code>
521
+ </li>
522
+
523
+ <li class="covered" data-hits="4" data-linenumber="63">
524
+ <span class="hits">4</span>
525
+
526
+ <code class="ruby"> message.header['Precedence'] = 'list'</code>
527
+ </li>
528
+
529
+ <li class="covered" data-hits="4" data-linenumber="64">
530
+ <span class="hits">4</span>
531
+
532
+ <code class="ruby"> deliver(message)</code>
533
+ </li>
534
+
535
+ <li class="never" data-hits="" data-linenumber="65">
536
+
537
+
538
+ <code class="ruby"> end</code>
539
+ </li>
540
+
541
+ <li class="never" data-hits="" data-linenumber="66">
542
+
543
+
544
+ <code class="ruby"> end</code>
545
+ </li>
546
+
547
+ <li class="never" data-hits="" data-linenumber="67">
548
+
549
+
550
+ <code class="ruby"> </code>
551
+ </li>
552
+
553
+ <li class="never" data-hits="" data-linenumber="68">
554
+
555
+
556
+ <code class="ruby"> # If the email sender was not allowed to post messages, this method is called.</code>
557
+ </li>
558
+
559
+ <li class="never" data-hits="" data-linenumber="69">
560
+
561
+
562
+ <code class="ruby"> # Silently ignores the message by default.</code>
563
+ </li>
564
+
565
+ <li class="covered" data-hits="1" data-linenumber="70">
566
+ <span class="hits">1</span>
567
+
568
+ <code class="ruby"> def reject_not_allowed</code>
569
+ </li>
570
+
571
+ <li class="never" data-hits="" data-linenumber="71">
572
+
573
+
574
+ <code class="ruby"> # do nothing</code>
575
+ </li>
576
+
577
+ <li class="never" data-hits="" data-linenumber="72">
578
+
579
+
580
+ <code class="ruby"> end</code>
581
+ </li>
582
+
583
+ <li class="never" data-hits="" data-linenumber="73">
584
+
585
+
586
+ <code class="ruby"> </code>
587
+ </li>
588
+
589
+ <li class="never" data-hits="" data-linenumber="74">
590
+
591
+
592
+ <code class="ruby"> # If the email is sent to an address that is not a valid relay, this method is called.</code>
593
+ </li>
594
+
595
+ <li class="never" data-hits="" data-linenumber="75">
596
+
597
+
598
+ <code class="ruby"> # Silently ignores the message by default.</code>
599
+ </li>
600
+
601
+ <li class="covered" data-hits="1" data-linenumber="76">
602
+ <span class="hits">1</span>
603
+
604
+ <code class="ruby"> def reject_not_existing</code>
605
+ </li>
606
+
607
+ <li class="never" data-hits="" data-linenumber="77">
608
+
609
+
610
+ <code class="ruby"> # do nothing</code>
611
+ </li>
612
+
613
+ <li class="never" data-hits="" data-linenumber="78">
614
+
615
+
616
+ <code class="ruby"> end</code>
617
+ </li>
618
+
619
+ <li class="never" data-hits="" data-linenumber="79">
620
+
621
+
622
+ <code class="ruby"> </code>
623
+ </li>
624
+
625
+ <li class="never" data-hits="" data-linenumber="80">
626
+
627
+
628
+ <code class="ruby"> # The receiver account that originally got this email.</code>
629
+ </li>
630
+
631
+ <li class="never" data-hits="" data-linenumber="81">
632
+
633
+
634
+ <code class="ruby"> # You probably have to re-implement this method depending on your mail server setup.</code>
635
+ </li>
636
+
637
+ <li class="never" data-hits="" data-linenumber="82">
638
+
639
+
640
+ <code class="ruby"> # Returns only the part before the @ sign.</code>
641
+ </li>
642
+
643
+ <li class="covered" data-hits="1" data-linenumber="83">
644
+ <span class="hits">1</span>
645
+
646
+ <code class="ruby"> def envelope_receiver_name</code>
647
+ </li>
648
+
649
+ <li class="never" data-hits="" data-linenumber="84">
650
+
651
+
652
+ <code class="ruby"> receiver_from_x_header || </code>
653
+ </li>
654
+
655
+ <li class="covered" data-hits="1" data-linenumber="85">
656
+ <span class="hits">1</span>
657
+
658
+ <code class="ruby"> receiver_from_received_header || </code>
659
+ </li>
660
+
661
+ <li class="never" data-hits="" data-linenumber="86">
662
+
663
+
664
+ <code class="ruby"> raise(&quot;Could not determine original receiver for email:\n#{message.header}&quot;)</code>
665
+ </li>
666
+
667
+ <li class="never" data-hits="" data-linenumber="87">
668
+
669
+
670
+ <code class="ruby"> end</code>
671
+ </li>
672
+
673
+ <li class="never" data-hits="" data-linenumber="88">
674
+
675
+
676
+ <code class="ruby"> </code>
677
+ </li>
678
+
679
+ <li class="never" data-hits="" data-linenumber="89">
680
+
681
+
682
+ <code class="ruby"> # The email address of the sender. As found in the from header.</code>
683
+ </li>
684
+
685
+ <li class="covered" data-hits="1" data-linenumber="90">
686
+ <span class="hits">1</span>
687
+
688
+ <code class="ruby"> def sender_email</code>
689
+ </li>
690
+
691
+ <li class="missed" data-hits="0" data-linenumber="91">
692
+
693
+
694
+ <code class="ruby"> @sender_email ||= message.from &amp;&amp; message.from.first</code>
695
+ </li>
696
+
697
+ <li class="never" data-hits="" data-linenumber="92">
698
+
699
+
700
+ <code class="ruby"> end</code>
701
+ </li>
702
+
703
+ <li class="never" data-hits="" data-linenumber="93">
704
+
705
+
706
+ <code class="ruby"> </code>
707
+ </li>
708
+
709
+ <li class="never" data-hits="" data-linenumber="94">
710
+
711
+
712
+ <code class="ruby"> </code>
713
+ </li>
714
+
715
+ <li class="never" data-hits="" data-linenumber="95">
716
+
717
+
718
+ <code class="ruby"> # Heuristic method to find actual receiver of the message.</code>
719
+ </li>
720
+
721
+ <li class="never" data-hits="" data-linenumber="96">
722
+
723
+
724
+ <code class="ruby"> # May return nil if could not determine.</code>
725
+ </li>
726
+
727
+ <li class="covered" data-hits="1" data-linenumber="97">
728
+ <span class="hits">1</span>
729
+
730
+ <code class="ruby"> def receiver_from_received_header</code>
731
+ </li>
732
+
733
+ <li class="covered" data-hits="3" data-linenumber="98">
734
+ <span class="hits">3</span>
735
+
736
+ <code class="ruby"> if received = message.received</code>
737
+ </li>
738
+
739
+ <li class="covered" data-hits="2" data-linenumber="99">
740
+ <span class="hits">2</span>
741
+
742
+ <code class="ruby"> received = received.first if received.respond_to?(:first)</code>
743
+ </li>
744
+
745
+ <li class="covered" data-hits="2" data-linenumber="100">
746
+ <span class="hits">2</span>
747
+
748
+ <code class="ruby"> received.info[/ for .*?([^\s&lt;&gt;]+)@[^\s&lt;&gt;]+/, 1]</code>
749
+ </li>
750
+
751
+ <li class="never" data-hits="" data-linenumber="101">
752
+
753
+
754
+ <code class="ruby"> end</code>
755
+ </li>
756
+
757
+ <li class="never" data-hits="" data-linenumber="102">
758
+
759
+
760
+ <code class="ruby"> end</code>
761
+ </li>
762
+
763
+ <li class="never" data-hits="" data-linenumber="103">
764
+
765
+
766
+ <code class="ruby"> </code>
767
+ </li>
768
+
769
+ <li class="never" data-hits="" data-linenumber="104">
770
+
771
+
772
+ <code class="ruby"> # Try to read the envelope receiver from the given x header</code>
773
+ </li>
774
+
775
+ <li class="covered" data-hits="1" data-linenumber="105">
776
+ <span class="hits">1</span>
777
+
778
+ <code class="ruby"> def receiver_from_x_header</code>
779
+ </li>
780
+
781
+ <li class="covered" data-hits="4" data-linenumber="106">
782
+ <span class="hits">4</span>
783
+
784
+ <code class="ruby"> if field = message.header[self.class.receiver_header]</code>
785
+ </li>
786
+
787
+ <li class="covered" data-hits="3" data-linenumber="107">
788
+ <span class="hits">3</span>
789
+
790
+ <code class="ruby"> field.to_s.split('@', 2).first</code>
791
+ </li>
792
+
793
+ <li class="never" data-hits="" data-linenumber="108">
794
+
795
+
796
+ <code class="ruby"> end</code>
797
+ </li>
798
+
799
+ <li class="never" data-hits="" data-linenumber="109">
800
+
801
+
802
+ <code class="ruby"> end</code>
803
+ </li>
804
+
805
+ <li class="never" data-hits="" data-linenumber="110">
806
+
807
+
808
+ <code class="ruby"> </code>
809
+ </li>
810
+
811
+ <li class="never" data-hits="" data-linenumber="111">
812
+
813
+
814
+ <code class="ruby"> # Is the mail sent to a valid relay address?</code>
815
+ </li>
816
+
817
+ <li class="covered" data-hits="1" data-linenumber="112">
818
+ <span class="hits">1</span>
819
+
820
+ <code class="ruby"> def relay_address?</code>
821
+ </li>
822
+
823
+ <li class="covered" data-hits="5" data-linenumber="113">
824
+ <span class="hits">5</span>
825
+
826
+ <code class="ruby"> true</code>
827
+ </li>
828
+
829
+ <li class="never" data-hits="" data-linenumber="114">
830
+
831
+
832
+ <code class="ruby"> end</code>
833
+ </li>
834
+
835
+ <li class="never" data-hits="" data-linenumber="115">
836
+
837
+
838
+ <code class="ruby"> </code>
839
+ </li>
840
+
841
+ <li class="never" data-hits="" data-linenumber="116">
842
+
843
+
844
+ <code class="ruby"> # Is the mail sender allowed to post to this address</code>
845
+ </li>
846
+
847
+ <li class="covered" data-hits="1" data-linenumber="117">
848
+ <span class="hits">1</span>
849
+
850
+ <code class="ruby"> def sender_allowed?</code>
851
+ </li>
852
+
853
+ <li class="covered" data-hits="5" data-linenumber="118">
854
+ <span class="hits">5</span>
855
+
856
+ <code class="ruby"> true</code>
857
+ </li>
858
+
859
+ <li class="never" data-hits="" data-linenumber="119">
860
+
861
+
862
+ <code class="ruby"> end</code>
863
+ </li>
864
+
865
+ <li class="never" data-hits="" data-linenumber="120">
866
+
867
+
868
+ <code class="ruby"> </code>
869
+ </li>
870
+
871
+ <li class="never" data-hits="" data-linenumber="121">
872
+
873
+
874
+ <code class="ruby"> # List of receiver email addresses for the resent email.</code>
875
+ </li>
876
+
877
+ <li class="covered" data-hits="1" data-linenumber="122">
878
+ <span class="hits">1</span>
879
+
880
+ <code class="ruby"> def receivers</code>
881
+ </li>
882
+
883
+ <li class="covered" data-hits="1" data-linenumber="123">
884
+ <span class="hits">1</span>
885
+
886
+ <code class="ruby"> []</code>
887
+ </li>
888
+
889
+ <li class="never" data-hits="" data-linenumber="124">
890
+
891
+
892
+ <code class="ruby"> end</code>
893
+ </li>
894
+
895
+ <li class="never" data-hits="" data-linenumber="125">
896
+
897
+
898
+ <code class="ruby"> </code>
899
+ </li>
900
+
901
+ <li class="never" data-hits="" data-linenumber="126">
902
+
903
+
904
+ <code class="ruby"> </code>
905
+ </li>
906
+
907
+ <li class="covered" data-hits="1" data-linenumber="127">
908
+ <span class="hits">1</span>
909
+
910
+ <code class="ruby"> private</code>
911
+ </li>
912
+
913
+ <li class="never" data-hits="" data-linenumber="128">
914
+
915
+
916
+ <code class="ruby"> </code>
917
+ </li>
918
+
919
+ <li class="covered" data-hits="1" data-linenumber="129">
920
+ <span class="hits">1</span>
921
+
922
+ <code class="ruby"> def deliver(message)</code>
923
+ </li>
924
+
925
+ <li class="covered" data-hits="4" data-linenumber="130">
926
+ <span class="hits">4</span>
927
+
928
+ <code class="ruby"> if defined?(ActionMailer::Base)</code>
929
+ </li>
930
+
931
+ <li class="missed" data-hits="0" data-linenumber="131">
932
+
933
+
934
+ <code class="ruby"> ActionMailer::Base.wrap_delivery_behavior(message)</code>
935
+ </li>
936
+
937
+ <li class="never" data-hits="" data-linenumber="132">
938
+
939
+
940
+ <code class="ruby"> end</code>
941
+ </li>
942
+
943
+ <li class="covered" data-hits="4" data-linenumber="133">
944
+ <span class="hits">4</span>
945
+
946
+ <code class="ruby"> message.deliver</code>
947
+ </li>
948
+
949
+ <li class="never" data-hits="" data-linenumber="134">
950
+
951
+
952
+ <code class="ruby"> end</code>
953
+ </li>
954
+
955
+ <li class="never" data-hits="" data-linenumber="135">
956
+
957
+
958
+ <code class="ruby"> </code>
959
+ </li>
960
+
961
+ <li class="covered" data-hits="1" data-linenumber="136">
962
+ <span class="hits">1</span>
963
+
964
+ <code class="ruby"> def add_custom_message_destinations</code>
965
+ </li>
966
+
967
+ <li class="covered" data-hits="4" data-linenumber="137">
968
+ <span class="hits">4</span>
969
+
970
+ <code class="ruby"> class &lt;&lt; message</code>
971
+ </li>
972
+
973
+ <li class="covered" data-hits="4" data-linenumber="138">
974
+ <span class="hits">4</span>
975
+
976
+ <code class="ruby"> def destinations</code>
977
+ </li>
978
+
979
+ <li class="covered" data-hits="1" data-linenumber="139">
980
+ <span class="hits">1</span>
981
+
982
+ <code class="ruby"> @destinations || []</code>
983
+ </li>
984
+
985
+ <li class="never" data-hits="" data-linenumber="140">
986
+
987
+
988
+ <code class="ruby"> end</code>
989
+ </li>
990
+
991
+ <li class="never" data-hits="" data-linenumber="141">
992
+
993
+
994
+ <code class="ruby"> </code>
995
+ </li>
996
+
997
+ <li class="covered" data-hits="4" data-linenumber="142">
998
+ <span class="hits">4</span>
999
+
1000
+ <code class="ruby"> def destinations=(destinations)</code>
1001
+ </li>
1002
+
1003
+ <li class="covered" data-hits="4" data-linenumber="143">
1004
+ <span class="hits">4</span>
1005
+
1006
+ <code class="ruby"> @destinations = destinations</code>
1007
+ </li>
1008
+
1009
+ <li class="never" data-hits="" data-linenumber="144">
1010
+
1011
+
1012
+ <code class="ruby"> end</code>
1013
+ </li>
1014
+
1015
+ <li class="never" data-hits="" data-linenumber="145">
1016
+
1017
+
1018
+ <code class="ruby"> end</code>
1019
+ </li>
1020
+
1021
+ <li class="never" data-hits="" data-linenumber="146">
1022
+
1023
+
1024
+ <code class="ruby"> end</code>
1025
+ </li>
1026
+
1027
+ <li class="never" data-hits="" data-linenumber="147">
1028
+
1029
+
1030
+ <code class="ruby"> </code>
1031
+ </li>
1032
+
1033
+ <li class="never" data-hits="" data-linenumber="148">
1034
+
1035
+
1036
+ <code class="ruby"> end</code>
1037
+ </li>
1038
+
1039
+ <li class="never" data-hits="" data-linenumber="149">
1040
+
1041
+
1042
+ <code class="ruby">end</code>
1043
+ </li>
1044
+
1045
+ </ol>
1046
+ </pre>
1047
+ </div>
1048
+
1049
+ </div>
1050
+ </div>
1051
+ </body>
1052
+ </html>