aiwilliams-mlist 0.0.0 → 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.
- data/README +23 -0
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/lib/mlist.rb +20 -1
- data/lib/mlist/email.rb +75 -0
- data/lib/mlist/email_post.rb +105 -0
- data/lib/mlist/email_server.rb +1 -2
- data/lib/mlist/email_server/base.rb +7 -4
- data/lib/mlist/email_server/default.rb +31 -0
- data/lib/mlist/email_server/fake.rb +2 -2
- data/lib/mlist/email_server/pop.rb +28 -0
- data/lib/mlist/email_server/smtp.rb +21 -0
- data/lib/mlist/email_subscriber.rb +6 -0
- data/lib/mlist/list.rb +38 -7
- data/lib/mlist/mail_list.rb +125 -54
- data/lib/mlist/manager/database.rb +8 -4
- data/lib/mlist/message.rb +78 -74
- data/lib/mlist/server.rb +12 -4
- data/lib/mlist/thread.rb +26 -2
- data/lib/mlist/util.rb +3 -0
- data/lib/mlist/util/email_helpers.rb +53 -0
- data/lib/mlist/util/header_sanitizer.rb +3 -0
- data/lib/mlist/util/tmail_builder.rb +42 -0
- data/lib/mlist/util/tmail_methods.rb +93 -0
- data/lib/pop_ssl.rb +999 -0
- metadata +12 -3
- data/lib/mlist/email_server/email.rb +0 -47
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aiwilliams-mlist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Williams
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-02-05 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -26,11 +26,16 @@ files:
|
|
26
26
|
- README
|
27
27
|
- VERSION.yml
|
28
28
|
- lib/mlist
|
29
|
+
- lib/mlist/email.rb
|
30
|
+
- lib/mlist/email_post.rb
|
29
31
|
- lib/mlist/email_server
|
30
32
|
- lib/mlist/email_server/base.rb
|
31
|
-
- lib/mlist/email_server/
|
33
|
+
- lib/mlist/email_server/default.rb
|
32
34
|
- lib/mlist/email_server/fake.rb
|
35
|
+
- lib/mlist/email_server/pop.rb
|
36
|
+
- lib/mlist/email_server/smtp.rb
|
33
37
|
- lib/mlist/email_server.rb
|
38
|
+
- lib/mlist/email_subscriber.rb
|
34
39
|
- lib/mlist/list.rb
|
35
40
|
- lib/mlist/mail_list.rb
|
36
41
|
- lib/mlist/manager
|
@@ -39,10 +44,14 @@ files:
|
|
39
44
|
- lib/mlist/server.rb
|
40
45
|
- lib/mlist/thread.rb
|
41
46
|
- lib/mlist/util
|
47
|
+
- lib/mlist/util/email_helpers.rb
|
42
48
|
- lib/mlist/util/header_sanitizer.rb
|
43
49
|
- lib/mlist/util/quoting.rb
|
50
|
+
- lib/mlist/util/tmail_builder.rb
|
51
|
+
- lib/mlist/util/tmail_methods.rb
|
44
52
|
- lib/mlist/util.rb
|
45
53
|
- lib/mlist.rb
|
54
|
+
- lib/pop_ssl.rb
|
46
55
|
has_rdoc: false
|
47
56
|
homepage: http://github.com/aiwilliams/mlist
|
48
57
|
post_install_message:
|
@@ -1,47 +0,0 @@
|
|
1
|
-
module MList
|
2
|
-
module EmailServer
|
3
|
-
|
4
|
-
# The interface to an incoming email.
|
5
|
-
#
|
6
|
-
# My primary goal is to decouple the MList::EmailServer from the
|
7
|
-
# MList::Server, this class acting as the bridge.
|
8
|
-
#
|
9
|
-
class Email
|
10
|
-
|
11
|
-
# TODO Provide the email_server to the instances
|
12
|
-
def initialize(tmail)
|
13
|
-
@tmail = tmail
|
14
|
-
end
|
15
|
-
|
16
|
-
def from_address
|
17
|
-
@tmail.from.first
|
18
|
-
end
|
19
|
-
|
20
|
-
# Answers the usable destination addresses of the email.
|
21
|
-
#
|
22
|
-
# TODO: Provide intelligence to this that allows it to ignore addresses
|
23
|
-
# that are not for the domain of the email_server.
|
24
|
-
#
|
25
|
-
def list_addresses
|
26
|
-
bounce? ? @tmail.header_string('to').match(/\Amlist-(.*)\Z/)[1] : @tmail.to
|
27
|
-
end
|
28
|
-
|
29
|
-
# Answers true if this email is a bounce.
|
30
|
-
#
|
31
|
-
# TODO Delegate to the email_server's bounce detector.
|
32
|
-
#
|
33
|
-
def bounce?
|
34
|
-
@tmail.header_string('to') =~ /mlist-/
|
35
|
-
end
|
36
|
-
|
37
|
-
# Answers unique copies of the underlying TMail::Mail instance,
|
38
|
-
# providing assurance that the MList::Server and it's sub-systems don't
|
39
|
-
# stomp all over each other by getting a reference to a single
|
40
|
-
# TMail::Mail instance.
|
41
|
-
#
|
42
|
-
def tmail
|
43
|
-
TMail::Mail.parse(@tmail.to_s)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|