multi_mail 0.1.3 → 0.1.4
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 +4 -4
- data/.gitignore +0 -1
- data/.rspec +2 -0
- data/.travis.yml +2 -3
- data/.yardopts +0 -1
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README.md +192 -31
- data/lib/multi_mail.rb +4 -2
- data/lib/multi_mail/cloudmailin/message.rb +7 -0
- data/lib/multi_mail/cloudmailin/receiver.rb +7 -7
- data/lib/multi_mail/mailgun/message.rb +2 -0
- data/lib/multi_mail/mailgun/receiver.rb +18 -18
- data/lib/multi_mail/mailgun/sender.rb +1 -1
- data/lib/multi_mail/mandrill/message.rb +2 -0
- data/lib/multi_mail/mandrill/receiver.rb +10 -10
- data/lib/multi_mail/mandrill/sender.rb +28 -6
- data/lib/multi_mail/postmark/message.rb +2 -0
- data/lib/multi_mail/postmark/receiver.rb +13 -5
- data/lib/multi_mail/postmark/sender.rb +22 -2
- data/lib/multi_mail/sendgrid/message.rb +2 -0
- data/lib/multi_mail/sendgrid/receiver.rb +8 -7
- data/lib/multi_mail/version.rb +1 -1
- data/multi_mail.gemspec +13 -15
- data/spec/cloudmailin/receiver_spec.rb +5 -5
- data/spec/mailgun/receiver_spec.rb +8 -8
- data/spec/mandrill/receiver_spec.rb +8 -8
- data/spec/mandrill/sender_spec.rb +53 -17
- data/spec/postmark/receiver_spec.rb +5 -5
- data/spec/postmark/sender_spec.rb +48 -0
- data/spec/sendgrid/receiver_spec.rb +5 -5
- data/spec/sendgrid/sender_spec.rb +3 -3
- data/spec/simple/receiver_spec.rb +1 -1
- data/spec/spec_helper.rb +5 -13
- metadata +17 -58
- data/USAGE +0 -1
@@ -2,6 +2,8 @@ module MultiMail
|
|
2
2
|
module Message
|
3
3
|
# @see http://documentation.mailgun.com/api-sending.html
|
4
4
|
class Mailgun < MultiMail::Message::Base
|
5
|
+
attr_accessor :stripped_text, :stripped_signature, :stripped_html, :content_id_map
|
6
|
+
|
5
7
|
# Returns the message headers in Mailgun format.
|
6
8
|
#
|
7
9
|
# @return [Multimap] the message headers in Mailgun format
|
@@ -34,7 +34,7 @@ module MultiMail
|
|
34
34
|
# Transforms the content of Mailgun's webhook into a list of messages.
|
35
35
|
#
|
36
36
|
# @param [Hash] params the content of Mailgun's webhook
|
37
|
-
# @return [Array<
|
37
|
+
# @return [Array<MultiMail::Message::Mailgun>] messages
|
38
38
|
# @see http://documentation.mailgun.net/user_manual.html#mime-messages-parameters
|
39
39
|
# @see http://documentation.mailgun.net/user_manual.html#parsed-messages-parameters
|
40
40
|
def transform(params)
|
@@ -44,7 +44,7 @@ module MultiMail
|
|
44
44
|
headers = self.class.multimap(JSON.load(params['message-headers']))
|
45
45
|
this = self
|
46
46
|
|
47
|
-
message =
|
47
|
+
message = Message::Mailgun.new do
|
48
48
|
headers headers
|
49
49
|
|
50
50
|
# The following are redundant with `body-mime` in raw MIME format
|
@@ -78,27 +78,27 @@ module MultiMail
|
|
78
78
|
end
|
79
79
|
|
80
80
|
# Extra Mailgun parameters.
|
81
|
-
|
82
|
-
'stripped-text'
|
83
|
-
'stripped-signature',
|
84
|
-
'stripped-html',
|
85
|
-
'content-id-map',
|
86
|
-
]
|
87
|
-
|
88
|
-
# Non-plain, non-HTML body parts.
|
89
|
-
extra += params.keys.select do |key|
|
90
|
-
key[/\Abody-(?!html|plain)/]
|
81
|
+
if params.key?('stripped-text') && !params['stripped-text'].empty?
|
82
|
+
message.stripped_text = params['stripped-text']
|
91
83
|
end
|
92
|
-
|
93
|
-
|
94
|
-
if params.key?(key) && !params[key].empty?
|
95
|
-
message[key] = params[key]
|
96
|
-
end
|
84
|
+
if params.key?('stripped-signature') && !params['stripped-signature'].empty?
|
85
|
+
message.stripped_signature = params['stripped-signature']
|
97
86
|
end
|
87
|
+
if params.key?('stripped-html') && !params['stripped-html'].empty?
|
88
|
+
message.stripped_html = params['stripped-html']
|
89
|
+
end
|
90
|
+
if params.key?('content-id-map') && !params['content-id-map'].empty?
|
91
|
+
message.content_id_map = params['content-id-map']
|
92
|
+
end
|
93
|
+
|
94
|
+
# @todo Store non-plain, non-HTML body parts.
|
95
|
+
# params.keys.select do |key|
|
96
|
+
# key[/\Abody-(?!html|plain)/]
|
97
|
+
# end
|
98
98
|
|
99
99
|
[message]
|
100
100
|
when 'raw'
|
101
|
-
message = self.class.condense(Mail.new(params['body-mime']))
|
101
|
+
message = self.class.condense(Message::Mailgun.new(Mail.new(params['body-mime'])))
|
102
102
|
[message]
|
103
103
|
else
|
104
104
|
raise ArgumentError, "Can't handle Mailgun #{@http_post_format} HTTP POST format"
|
@@ -2,6 +2,8 @@ module MultiMail
|
|
2
2
|
module Message
|
3
3
|
# @see https://mandrillapp.com/api/docs/messages.ruby.html#method-send
|
4
4
|
class Mandrill < MultiMail::Message::Base
|
5
|
+
attr_accessor :ts, :email, :dkim_signed, :dkim_valid, :spam_report_score, :spf_result
|
6
|
+
|
5
7
|
# Returns the To header in Mandrill format.
|
6
8
|
#
|
7
9
|
# @return [Array<Hash>] the To header in Mandrill format
|
@@ -39,7 +39,7 @@ module MultiMail
|
|
39
39
|
# Transforms the content of Mandrill's webhook into a list of messages.
|
40
40
|
#
|
41
41
|
# @param [Hash] params the content of Mandrill's webhook
|
42
|
-
# @return [Array<
|
42
|
+
# @return [Array<MultiMail::Message::Mandrill>] messages
|
43
43
|
# @see http://help.mandrill.com/entries/22092308-What-is-the-format-of-inbound-email-webhooks-
|
44
44
|
def transform(params)
|
45
45
|
# JSON is necessarily UTF-8.
|
@@ -52,7 +52,7 @@ module MultiMail
|
|
52
52
|
headers = self.class.multimap(msg['headers'])
|
53
53
|
this = self
|
54
54
|
|
55
|
-
message =
|
55
|
+
message = Message::Mandrill.new do
|
56
56
|
headers headers
|
57
57
|
|
58
58
|
# The following are redundant with `message-headers`:
|
@@ -71,7 +71,7 @@ module MultiMail
|
|
71
71
|
# If an email contains multiple HTML parts, Mandrill will only
|
72
72
|
# include the first HTML part in its `html` parameter. We therefore
|
73
73
|
# parse its `raw_msg` parameter to set the HTML part correctly.
|
74
|
-
html = this.class.condense(Mail.new(msg['raw_msg'])).parts.find do |part|
|
74
|
+
html = this.class.condense(Message::Mandrill.new(Mail.new(msg['raw_msg']))).parts.find do |part|
|
75
75
|
part.content_type == 'text/html; charset=UTF-8'
|
76
76
|
end
|
77
77
|
|
@@ -98,12 +98,12 @@ module MultiMail
|
|
98
98
|
# null according to the docs, `matched_rules` within `spam_report`,
|
99
99
|
# and `detail` within `spf`, which is just a human-readable version of
|
100
100
|
# `result`.
|
101
|
-
message
|
102
|
-
message
|
103
|
-
message
|
104
|
-
message
|
105
|
-
message
|
106
|
-
message
|
101
|
+
message.ts = event['ts']
|
102
|
+
message.email = msg['email']
|
103
|
+
message.dkim_signed = msg['dkim']['signed']
|
104
|
+
message.dkim_valid = msg['dkim']['valid']
|
105
|
+
message.spam_report_score = msg['spam_report']['score']
|
106
|
+
message.spf_result = msg['spf']['result']
|
107
107
|
|
108
108
|
message
|
109
109
|
end
|
@@ -114,7 +114,7 @@ module MultiMail
|
|
114
114
|
# @param [Mail::Message] message a message
|
115
115
|
# @return [Boolean] whether the message is spam
|
116
116
|
def spam?(message)
|
117
|
-
message
|
117
|
+
message.spam_report_score > @spamassassin_threshold
|
118
118
|
end
|
119
119
|
|
120
120
|
private
|
@@ -6,7 +6,7 @@ module MultiMail
|
|
6
6
|
|
7
7
|
requires :api_key
|
8
8
|
|
9
|
-
attr_reader :api_key, :async, :ip_pool, :send_at
|
9
|
+
attr_reader :api_key, :async, :ip_pool, :send_at, :template_name, :template_content
|
10
10
|
|
11
11
|
# Initializes a Mandrill outgoing email sender.
|
12
12
|
#
|
@@ -16,16 +16,23 @@ module MultiMail
|
|
16
16
|
# mode optimized for bulk sending
|
17
17
|
# @option options [String] :ip_pool the name of the dedicated IP pool that
|
18
18
|
# should be used to send the message
|
19
|
+
# @option options [String] :template_name the slug or name of a template
|
20
|
+
# that exists in the user's Mandrill account
|
21
|
+
# @option options [Array<Hash>] :template_content an array of hashes, each
|
22
|
+
# with a `"name"` key for the editable region to inject into and a
|
23
|
+
# `"content"` key for the content to inject
|
19
24
|
# @option options [Time,String] :send_at when this message should be sent
|
20
25
|
# @see https://mandrillapp.com/api/docs/index.ruby.html
|
21
26
|
# @see https://mandrillapp.com/api/docs/messages.JSON.html#method-send
|
22
27
|
def initialize(options = {})
|
23
28
|
super
|
24
29
|
@api_key = settings.delete(:api_key)
|
25
|
-
@async
|
30
|
+
@async = settings.delete(:async) || false
|
26
31
|
@ip_pool = settings.delete(:ip_pool)
|
27
32
|
@send_at = settings.delete(:send_at)
|
28
|
-
|
33
|
+
@template_name = settings.delete(:template_name)
|
34
|
+
@template_content = settings.delete(:template_content)
|
35
|
+
unless @send_at.nil? || String === @send_at
|
29
36
|
@send_at = @send_at.utc.strftime('%Y-%m-%d %T')
|
30
37
|
end
|
31
38
|
end
|
@@ -60,15 +67,28 @@ module MultiMail
|
|
60
67
|
# @see https://bitbucket.org/mailchimp/mandrill-api-ruby/src/d0950a6f9c4fac1dd2d5198a4f72c12c626ab149/lib/mandrill/api.rb?at=master#cl-738
|
61
68
|
# @see https://bitbucket.org/mailchimp/mandrill-api-ruby/src/d0950a6f9c4fac1dd2d5198a4f72c12c626ab149/lib/mandrill.rb?at=master#cl-32
|
62
69
|
def deliver!(mail)
|
70
|
+
@template_name = settings.delete(:template_name)
|
71
|
+
@template_content = settings.delete(:template_content)
|
72
|
+
|
63
73
|
message = MultiMail::Message::Mandrill.new(mail).to_mandrill_hash.merge(parameters)
|
64
74
|
|
65
|
-
|
75
|
+
api_params = {
|
66
76
|
:key => api_key,
|
67
77
|
:message => message,
|
68
78
|
:async => async,
|
69
79
|
:ip_pool => ip_pool,
|
70
80
|
:send_at => send_at,
|
71
|
-
}
|
81
|
+
}
|
82
|
+
|
83
|
+
if template_name
|
84
|
+
api_method = 'send-template'
|
85
|
+
api_params[:template_name] = template_name
|
86
|
+
api_params[:template_content] = template_content
|
87
|
+
else
|
88
|
+
api_method = 'send'
|
89
|
+
end
|
90
|
+
|
91
|
+
response = Faraday.post("https://mandrillapp.com/api/1.0/messages/#{api_method}.json", JSON.dump(api_params))
|
72
92
|
|
73
93
|
body = JSON.load(response.body)
|
74
94
|
|
@@ -77,8 +97,10 @@ module MultiMail
|
|
77
97
|
case body['name']
|
78
98
|
when 'Invalid_Key'
|
79
99
|
raise InvalidAPIKey, body['message']
|
100
|
+
when 'Unknown_Template'
|
101
|
+
raise InvalidTemplate, body['message']
|
80
102
|
else
|
81
|
-
raise body['message']
|
103
|
+
raise "#{body['name']}: #{body['message']}"
|
82
104
|
end
|
83
105
|
else
|
84
106
|
raise body['message']
|
@@ -2,6 +2,8 @@ module MultiMail
|
|
2
2
|
module Message
|
3
3
|
# @see http://developer.postmarkapp.com/developer-build.html#message-format
|
4
4
|
class Postmark < MultiMail::Message::Base
|
5
|
+
attr_accessor :mailboxhash, :messageid, :tag
|
6
|
+
|
5
7
|
# Returns the message headers in Postmark format.
|
6
8
|
#
|
7
9
|
# @return [Array<Hash>] the message headers in Postmark format
|
@@ -4,6 +4,10 @@ module MultiMail
|
|
4
4
|
class Postmark
|
5
5
|
include MultiMail::Receiver::Base
|
6
6
|
|
7
|
+
# Transforms the content of Postmark's webhook into a list of messages.
|
8
|
+
#
|
9
|
+
# @param [Hash] params the content of Postmark's webhook
|
10
|
+
# @return [Array<MultiMail::Message::Postmark>] messages
|
7
11
|
def transform(params)
|
8
12
|
headers = Multimap.new
|
9
13
|
params['Headers'].each do |header|
|
@@ -15,7 +19,7 @@ module MultiMail
|
|
15
19
|
to = params['ToFull'].map{|hash| transform_address(hash)}
|
16
20
|
cc = params['CcFull'].map{|hash| transform_address(hash)}
|
17
21
|
|
18
|
-
message =
|
22
|
+
message = Message::Postmark.new do
|
19
23
|
headers headers
|
20
24
|
message_id params['MessageID']
|
21
25
|
|
@@ -41,10 +45,14 @@ module MultiMail
|
|
41
45
|
end
|
42
46
|
|
43
47
|
# Extra Postmark parameters.
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
+
if params.key?('MailboxHash') && !params['MailboxHash'].empty?
|
49
|
+
message.mailboxhash = params['MailboxHash']
|
50
|
+
end
|
51
|
+
if params.key?('MessageID') && !params['MessageID'].empty?
|
52
|
+
message.messageid = params['MessageID']
|
53
|
+
end
|
54
|
+
if params.key?('Tag') && !params['Tag'].empty?
|
55
|
+
message.tag = params['Tag']
|
48
56
|
end
|
49
57
|
|
50
58
|
[message]
|
@@ -18,6 +18,28 @@ module MultiMail
|
|
18
18
|
@api_key = settings.delete(:api_key)
|
19
19
|
end
|
20
20
|
|
21
|
+
# Returns the additional parameters for the API call.
|
22
|
+
#
|
23
|
+
# @return [Hash] the additional parameters for the API call
|
24
|
+
def parameters
|
25
|
+
parameters = settings.dup
|
26
|
+
parameters.delete(:return_response)
|
27
|
+
|
28
|
+
if tracking.key?(:opens)
|
29
|
+
parameter = :TrackOpens
|
30
|
+
case tracking[:opens]
|
31
|
+
when true, false, nil
|
32
|
+
parameters[parameter] = tracking[:opens]
|
33
|
+
when 'yes'
|
34
|
+
parameters[parameter] = true
|
35
|
+
when 'no'
|
36
|
+
parameters[parameter] = false
|
37
|
+
end # ignore "htmlonly"
|
38
|
+
end
|
39
|
+
|
40
|
+
parameters
|
41
|
+
end
|
42
|
+
|
21
43
|
# Delivers a message via the Postmark API.
|
22
44
|
#
|
23
45
|
# @param [Mail::Message] mail a message
|
@@ -25,8 +47,6 @@ module MultiMail
|
|
25
47
|
# @see http://developer.postmarkapp.com/developer-build.html#http-response-codes
|
26
48
|
# @see http://developer.postmarkapp.com/developer-build.html#api-error-codes
|
27
49
|
def deliver!(mail)
|
28
|
-
parameters = settings.dup
|
29
|
-
parameters.delete(:return_response)
|
30
50
|
message = MultiMail::Message::Postmark.new(mail).to_postmark_hash.merge(parameters)
|
31
51
|
|
32
52
|
response = Faraday.post do |request|
|
@@ -2,6 +2,8 @@ module MultiMail
|
|
2
2
|
module Message
|
3
3
|
# @see http://sendgrid.com/docs/API_Reference/Web_API/mail.html
|
4
4
|
class SendGrid < MultiMail::Message::Base
|
5
|
+
attr_accessor :dkim, :spf, :spam_report, :spam_score
|
6
|
+
|
5
7
|
# Returns the message headers in SendGrid format.
|
6
8
|
#
|
7
9
|
# @return [Hash] the message headers in SendGrid format
|
@@ -16,7 +16,7 @@ module MultiMail
|
|
16
16
|
# Transforms the content of SendGrid's webook into a list of messages.
|
17
17
|
#
|
18
18
|
# @param [Hash] params the content of Mandrill's webhook
|
19
|
-
# @return [Array<
|
19
|
+
# @return [Array<MultiMail::Message::SendGrid>] messages
|
20
20
|
# @see http://sendgrid.com/docs/API_Reference/Webhooks/parse.html
|
21
21
|
def transform(params)
|
22
22
|
# Make variables available to the `encode` method.
|
@@ -26,7 +26,7 @@ module MultiMail
|
|
26
26
|
# Mail changes `self`.
|
27
27
|
this = self
|
28
28
|
|
29
|
-
message =
|
29
|
+
message = Message::SendGrid.new do
|
30
30
|
# SendGrid includes a `charsets` parameter, which describes the
|
31
31
|
# encodings of the `from`, `to`, `cc` and `subject` parameters, which
|
32
32
|
# we don't need because we parse the headers directly.
|
@@ -57,10 +57,11 @@ module MultiMail
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
# Extra SendGrid parameters.
|
61
|
-
|
62
|
-
|
63
|
-
|
60
|
+
# Extra SendGrid parameters.
|
61
|
+
message.dkim = params['dkim']
|
62
|
+
message.spf = params['SPF']
|
63
|
+
message.spam_report = params['spam_report']
|
64
|
+
message.spam_score = params['spam_score']
|
64
65
|
|
65
66
|
# Discard `envelope`, which contains `to` and `from`, and the
|
66
67
|
# undocumented `attachment-info`.
|
@@ -72,7 +73,7 @@ module MultiMail
|
|
72
73
|
# @param [Mail::Message] message a message
|
73
74
|
# @return [Boolean] whether the message is spam
|
74
75
|
def spam?(message)
|
75
|
-
message
|
76
|
+
message.spam_score.to_f > @spamassassin_threshold
|
76
77
|
end
|
77
78
|
|
78
79
|
def encode(key)
|
data/lib/multi_mail/version.rb
CHANGED
data/multi_mail.gemspec
CHANGED
@@ -5,9 +5,8 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.name = "multi_mail"
|
6
6
|
s.version = MultiMail::VERSION
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
|
-
s.authors = ["
|
9
|
-
s.
|
10
|
-
s.homepage = "http://github.com/opennorth/multi_mail"
|
8
|
+
s.authors = ["James McKinney"]
|
9
|
+
s.homepage = "https://github.com/jpmckinney/multi_mail"
|
11
10
|
s.summary = %q{Easily switch between email APIs}
|
12
11
|
s.license = 'MIT'
|
13
12
|
|
@@ -16,20 +15,19 @@ Gem::Specification.new do |s|
|
|
16
15
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
16
|
s.require_paths = ["lib"]
|
18
17
|
|
19
|
-
s.add_runtime_dependency
|
20
|
-
s.add_runtime_dependency
|
21
|
-
s.add_runtime_dependency
|
18
|
+
s.add_runtime_dependency('faraday', '~> 0.9.0')
|
19
|
+
s.add_runtime_dependency('mail', '~> 2.5')
|
20
|
+
s.add_runtime_dependency('rack', '~> 1.5')
|
22
21
|
|
23
22
|
# For testing
|
24
|
-
s.add_development_dependency
|
25
|
-
s.add_development_dependency
|
26
|
-
s.add_development_dependency '
|
27
|
-
s.add_development_dependency 'rspec', '~> 2.10'
|
28
|
-
s.add_development_dependency 'vcr', '~> 2.4.0'
|
23
|
+
s.add_development_dependency('coveralls')
|
24
|
+
s.add_development_dependency('rake')
|
25
|
+
s.add_development_dependency('rspec', '~> 2.10')
|
29
26
|
|
30
27
|
# For Rake tasks
|
31
|
-
s.add_development_dependency
|
32
|
-
s.add_development_dependency
|
33
|
-
s.add_development_dependency
|
34
|
-
|
28
|
+
s.add_development_dependency('mandrill-api', '~> 1.0.35')
|
29
|
+
s.add_development_dependency('postmark')
|
30
|
+
s.add_development_dependency('rest-client', '~> 1.8.0')
|
31
|
+
# sendgrid_webapi 0.0.2 depends on Faraday 0.8.
|
32
|
+
# s.add_development_dependency('sendgrid_webapi', '0.0.2')
|
35
33
|
end
|
@@ -63,8 +63,8 @@ describe MultiMail::Receiver::Cloudmailin do
|
|
63
63
|
message.subject.should == 'Test'
|
64
64
|
|
65
65
|
# Body
|
66
|
-
message.multipart?.should
|
67
|
-
message.parts.size.should
|
66
|
+
message.multipart?.should == true
|
67
|
+
message.parts.size.should == 4
|
68
68
|
text_part = message.parts.find{|part| part.content_type == 'text/plain'}
|
69
69
|
html_part = message.parts.find{|part| part.content_type == 'text/html; charset=UTF-8'}
|
70
70
|
text_part.body.decoded.should == "bold text\n\n\n\nsome more bold text\n\n\n\nsome italic text\n\n> multiline\n> quoted\n> text\n\n\n--\nSignature block"
|
@@ -92,11 +92,11 @@ describe MultiMail::Receiver::Cloudmailin do
|
|
92
92
|
|
93
93
|
# Extra Cloudmailin parameters
|
94
94
|
if actual_http_post_format == 'raw'
|
95
|
-
message
|
95
|
+
message.reply_plain.should be_nil
|
96
96
|
else
|
97
|
-
message
|
97
|
+
message.reply_plain.should == "bold text\n\n\n\nsome more bold text\n\n\n\nsome italic text\n"
|
98
98
|
end
|
99
|
-
message
|
99
|
+
message.spf_result.should == 'pass'
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -92,8 +92,8 @@ describe MultiMail::Receiver::Mailgun do
|
|
92
92
|
message.subject.should == 'Test'
|
93
93
|
|
94
94
|
# Body
|
95
|
-
message.multipart?.should
|
96
|
-
message.parts.size.should
|
95
|
+
message.multipart?.should == true
|
96
|
+
message.parts.size.should == 4
|
97
97
|
text_part = message.parts.find{|part| part.content_type == 'text/plain'}
|
98
98
|
html_part = message.parts.find{|part| part.content_type == 'text/html; charset=UTF-8'}
|
99
99
|
text_part.body.decoded.should == "bold text\n\n\n\nsome more bold text\n\n\n\nsome italic text\n\n> multiline\n> quoted\n> text\n\n\n--\nSignature block"
|
@@ -110,13 +110,13 @@ describe MultiMail::Receiver::Mailgun do
|
|
110
110
|
# text" but `stripped-html` doesn't. `stripped-signature` and
|
111
111
|
# `stripped-text` use CRLF line endings.
|
112
112
|
if actual_http_post_format == 'raw'
|
113
|
-
message
|
114
|
-
message
|
115
|
-
message
|
113
|
+
message.stripped_text.should be_nil
|
114
|
+
message.stripped_signature.should be_nil
|
115
|
+
message.stripped_html.should be_nil
|
116
116
|
else
|
117
|
-
message
|
118
|
-
message
|
119
|
-
message
|
117
|
+
message.stripped_text.should == "bold text\r\n\r\n\r\n\r\nsome more bold text\r\n\r\n\r\n\r\nsome italic text"
|
118
|
+
message.stripped_signature.should == "--\r\nSignature block"
|
119
|
+
message.stripped_html.should == '<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><b>bold text</b><div><br></div><div></div></body><html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div></div><div><br></div><div><b>some more bold text</b></div><div><b><br></b></div><div><b></b></div></body></html><html><head></head></html></html>'
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|