messagebus_ruby_api 3.0.6 → 3.0.7
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.
@@ -190,10 +190,11 @@ module MessagebusApi
|
|
190
190
|
time.strftime("%Y-%m-%dT%H:%M:%SZ")
|
191
191
|
end
|
192
192
|
|
193
|
-
|
194
|
-
|
195
|
-
|
193
|
+
def deliver(message)
|
194
|
+
deliver!(message)
|
195
|
+
end
|
196
196
|
|
197
|
+
def deliver!(message)
|
197
198
|
if message.to.first.nil? ||message.subject.nil? || message.from.first.nil? then
|
198
199
|
raise "Messagebus API error=Missing required header: :toEmail => #{message.to.first} :subject => #{message.subject} :fromEmail => #{message.from.first}"
|
199
200
|
end
|
@@ -210,16 +211,21 @@ module MessagebusApi
|
|
210
211
|
raise "Messagebus API error=From Address is invalid :toEmail => #{message.to.first} :subject => #{message.subject} :fromEmail => #{message.from.first}"
|
211
212
|
end
|
212
213
|
|
214
|
+
custom_headers = {}
|
215
|
+
|
216
|
+
custom_headers["envelope-sender"] = message.return_path if !message.return_path.nil?
|
217
|
+
custom_headers["bcc"] = message.bcc[0] if !message.bcc.nil?
|
218
|
+
|
219
|
+
message.header.fields.each do |f|
|
220
|
+
custom_headers[f.name] = f.value if f.name =~ /x-.*/i
|
221
|
+
end
|
222
|
+
|
213
223
|
msg = {
|
214
224
|
:toEmail => message.to.first,
|
215
225
|
:subject => message.subject,
|
216
226
|
:fromEmail => from_email,
|
217
|
-
:fromName => from_name
|
218
|
-
|
219
|
-
|
220
|
-
message.header.fields.delete_if { |k|
|
221
|
-
( k.name.casecmp('bcc') == 0 ||
|
222
|
-
k.name.casecmp('cc') == 0 )
|
227
|
+
:fromName => from_name,
|
228
|
+
:customHeaders => custom_headers
|
223
229
|
}
|
224
230
|
|
225
231
|
msg[:plaintextBody] = ( message.body ) ? "#{message.body}" : "No plaintext version was supplied."
|
@@ -468,11 +468,14 @@ describe MessagebusApi::Messagebus do
|
|
468
468
|
message_body = JSON.parse(FakeWeb.last_request.body)
|
469
469
|
message_body["messages"][0]["fromName"].should == ""
|
470
470
|
message_body["messages"][0]["fromEmail"].should == to_email
|
471
|
+
message_body["messages"][0]["customHeaders"].should == {"envelope-sender"=>"bounce@bounce.example.com"}
|
471
472
|
end
|
472
473
|
|
473
474
|
it "works with from with nice name in address" do
|
474
475
|
to_email = "Joe Mail <hello_joe@example.com>"
|
475
|
-
|
476
|
+
bcc = "goodbye@example.com"
|
477
|
+
x_headers = {"x-header-a" => "header1", "x-tracking" => "1234"}
|
478
|
+
message = MessageBusActionMailerTest.new_message(to_email, bcc, x_headers)
|
476
479
|
|
477
480
|
FakeWeb.register_uri(:post, "https://api.messagebus.com/api/v3/emails/send", :body => json_valid_send)
|
478
481
|
client.deliver!(message)
|
@@ -480,6 +483,9 @@ describe MessagebusApi::Messagebus do
|
|
480
483
|
message_body = JSON.parse(FakeWeb.last_request.body)
|
481
484
|
message_body["messages"][0]["fromName"].should == "Joe Mail"
|
482
485
|
message_body["messages"][0]["fromEmail"].should == "hello_joe@example.com"
|
486
|
+
message_body["messages"][0]["customHeaders"]["bcc"].should == "goodbye@example.com"
|
487
|
+
message_body["messages"][0]["customHeaders"]["x-header-a"].should == "header1"
|
488
|
+
message_body["messages"][0]["customHeaders"]["x-tracking"].should == "1234"
|
483
489
|
end
|
484
490
|
end
|
485
491
|
|
data/spec/spec_helper.rb
CHANGED
@@ -128,14 +128,24 @@ JAVASCRIPT
|
|
128
128
|
json
|
129
129
|
end
|
130
130
|
|
131
|
+
|
132
|
+
|
131
133
|
ActionMailer::Base.add_delivery_method :messagebus, MessagebusApi::Messagebus, @api_key
|
134
|
+
ActionMailer::Base.delivery_method = :messagebus
|
135
|
+
|
132
136
|
class MessageBusActionMailerTest < ActionMailer::Base
|
133
137
|
default :to => "someone@example.com",
|
134
138
|
:from => "no-reply@messagebus.com",
|
135
139
|
:body => "This is a test",
|
136
|
-
:subject => "Unit Test"
|
140
|
+
:subject => "Unit Test",
|
141
|
+
:return_path => "bounce@bounce.example.com"
|
142
|
+
|
143
|
+
def new_message(from_email, bcc = "", x_headers = {})
|
144
|
+
x_headers.each do |key, value|
|
145
|
+
headers[key] = value
|
146
|
+
end
|
137
147
|
|
138
|
-
|
148
|
+
mail(:bcc => bcc) if bcc != ""
|
139
149
|
mail(:from => from_email)
|
140
150
|
end
|
141
151
|
end
|
metadata
CHANGED
@@ -1,34 +1,44 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: messagebus_ruby_api
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 3
|
7
|
+
- 0
|
8
|
+
- 7
|
9
|
+
version: 3.0.7
|
6
10
|
platform: ruby
|
7
|
-
authors:
|
11
|
+
authors:
|
8
12
|
- Message Bus dev team
|
9
13
|
autorequire:
|
10
14
|
bindir: bin
|
11
15
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
|
17
|
+
date: 2013-01-30 00:00:00 -08:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: multipart-post
|
16
|
-
requirement: &70268165864740 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
description: "Allows you to use the Message Bus API "
|
33
|
+
email:
|
27
34
|
- messagebus@googlegroups.com
|
28
35
|
executables: []
|
36
|
+
|
29
37
|
extensions: []
|
38
|
+
|
30
39
|
extra_rdoc_files: []
|
31
|
-
|
40
|
+
|
41
|
+
files:
|
32
42
|
- lib/messagebus_ruby_api/errors.rb
|
33
43
|
- lib/messagebus_ruby_api/messagebus.rb
|
34
44
|
- lib/messagebus_ruby_api/version.rb
|
@@ -41,32 +51,37 @@ files:
|
|
41
51
|
- Gemfile
|
42
52
|
- Rakefile
|
43
53
|
- .rvmrc
|
44
|
-
|
45
|
-
|
54
|
+
has_rdoc: true
|
55
|
+
homepage: ""
|
56
|
+
licenses:
|
46
57
|
- APACHE2
|
47
58
|
post_install_message:
|
48
59
|
rdoc_options: []
|
49
|
-
|
60
|
+
|
61
|
+
require_paths:
|
50
62
|
- lib
|
51
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
requirements:
|
60
|
-
- -
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
segments:
|
75
|
+
- 0
|
76
|
+
version: "0"
|
63
77
|
requirements: []
|
78
|
+
|
64
79
|
rubyforge_project: messagebus_ruby_api
|
65
|
-
rubygems_version: 1.
|
80
|
+
rubygems_version: 1.3.6
|
66
81
|
signing_key:
|
67
82
|
specification_version: 3
|
68
83
|
summary: Send email through the Message Bus service
|
69
|
-
test_files:
|
84
|
+
test_files:
|
70
85
|
- spec/messagebus_ruby_api/cacert.pem
|
71
86
|
- spec/messagebus_ruby_api/messagebus_spec.rb
|
72
87
|
- spec/spec_core_extensions.rb
|