aiwilliams-mlist 0.0.0 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|