aws-ses 0.4.4 → 0.5.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/CHANGELOG +4 -0
- data/README.erb +2 -2
- data/README.rdoc +12 -6
- data/VERSION +1 -1
- data/aws-ses.gemspec +8 -8
- data/lib/aws/ses.rb +2 -2
- data/lib/aws/ses/send_email.rb +12 -9
- data/test/helper.rb +6 -0
- data/test/send_email_test.rb +19 -1
- metadata +144 -129
data/CHANGELOG
CHANGED
data/README.erb
CHANGED
@@ -20,7 +20,7 @@ This gem is compatible with Rails >= 3.0.0 and Rails 2.3.x
|
|
20
20
|
|
21
21
|
To use, first add the gem to your Gemfile:
|
22
22
|
|
23
|
-
gem "aws-ses", "~> 0.
|
23
|
+
gem "aws-ses", "~> 0.5.0", :require => 'aws/ses'
|
24
24
|
|
25
25
|
== For Rails 3.x
|
26
26
|
|
@@ -89,4 +89,4 @@ Special thanks to Marcel Molina Jr. for his creation of AWS::S3 which I used por
|
|
89
89
|
* nathanbertram
|
90
90
|
* sshaw
|
91
91
|
* teeparham (documentation)
|
92
|
-
* pzb
|
92
|
+
* pzb
|
data/README.rdoc
CHANGED
@@ -26,11 +26,12 @@ Adds functionality for send_email and send_raw_email
|
|
26
26
|
Use the following to send an e-mail:
|
27
27
|
|
28
28
|
ses = AWS::SES::Base.new( ... connection info ... )
|
29
|
-
ses.send_email
|
29
|
+
ses.send_email (
|
30
|
+
:to => ['jon@example.com', 'dave@example.com'],
|
30
31
|
:source => '"Steve Smith" <steve@example.com>',
|
31
32
|
:subject => 'Subject Line'
|
32
33
|
:text_body => 'Internal text body'
|
33
|
-
|
34
|
+
)
|
34
35
|
By default, the email "from" display address is whatever is before the @.
|
35
36
|
To change the display from, use the format:
|
36
37
|
|
@@ -94,8 +95,13 @@ GetSendStatisticsResponse#data_points is an array where each element is a hash w
|
|
94
95
|
* +Complaints+
|
95
96
|
* +Timestamp+
|
96
97
|
|
97
|
-
|
98
|
-
|
98
|
+
For example:
|
99
|
+
|
100
|
+
response = ses.statistics
|
101
|
+
response.data_points
|
102
|
+
|
103
|
+
will return:
|
104
|
+
|
99
105
|
[{"Bounces"=>"0",
|
100
106
|
"Timestamp"=>"2011-01-26T16:30:00Z",
|
101
107
|
"DeliveryAttempts"=>"1",
|
@@ -124,7 +130,7 @@ This gem is compatible with Rails >= 3.0.0 and Rails 2.3.x
|
|
124
130
|
|
125
131
|
To use, first add the gem to your Gemfile:
|
126
132
|
|
127
|
-
gem "aws-ses", "~> 0.
|
133
|
+
gem "aws-ses", "~> 0.5.0", :require => 'aws/ses'
|
128
134
|
|
129
135
|
== For Rails 3.x
|
130
136
|
|
@@ -193,4 +199,4 @@ Special thanks to Marcel Molina Jr. for his creation of AWS::S3 which I used por
|
|
193
199
|
* nathanbertram
|
194
200
|
* sshaw
|
195
201
|
* teeparham (documentation)
|
196
|
-
* pzb
|
202
|
+
* pzb
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/aws-ses.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
7
|
+
s.name = "aws-ses"
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Drew Blas", "Marcel Molina Jr."]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = "2013-04-30"
|
13
|
+
s.description = "Client library for Amazon's Simple Email Service's REST API"
|
14
|
+
s.email = "drew.blas@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.erb",
|
@@ -49,11 +49,11 @@ Gem::Specification.new do |s|
|
|
49
49
|
"test/response_test.rb",
|
50
50
|
"test/send_email_test.rb"
|
51
51
|
]
|
52
|
-
s.homepage =
|
52
|
+
s.homepage = "http://github.com/drewblas/aws-ses"
|
53
53
|
s.licenses = ["MIT"]
|
54
54
|
s.require_paths = ["lib"]
|
55
|
-
s.rubygems_version =
|
56
|
-
s.summary =
|
55
|
+
s.rubygems_version = "1.8.19"
|
56
|
+
s.summary = "Client library for Amazon's Simple Email Service's REST API"
|
57
57
|
s.test_files = [
|
58
58
|
"test/address_test.rb",
|
59
59
|
"test/base_test.rb",
|
data/lib/aws/ses.rb
CHANGED
data/lib/aws/ses/send_email.rb
CHANGED
@@ -9,13 +9,13 @@ module AWS
|
|
9
9
|
# :subject => 'Subject Line'
|
10
10
|
# :text_body => 'Internal text body'
|
11
11
|
#
|
12
|
-
# By default, the email "from" display address is whatever is before the @.
|
13
|
-
# To change the display from, use the format:
|
12
|
+
# By default, the email "from" display address is whatever is before the @.
|
13
|
+
# To change the display from, use the format:
|
14
14
|
#
|
15
15
|
# "Steve Smith" <steve@example.com>
|
16
16
|
#
|
17
17
|
# You can also send Mail objects using send_raw_email:
|
18
|
-
#
|
18
|
+
#
|
19
19
|
# m = Mail.new( :to => ..., :from => ... )
|
20
20
|
# ses.send_raw_email(m)
|
21
21
|
#
|
@@ -24,9 +24,9 @@ module AWS
|
|
24
24
|
module SendEmail
|
25
25
|
|
26
26
|
# Sends an email through SES
|
27
|
-
#
|
27
|
+
#
|
28
28
|
# the destination parameters can be:
|
29
|
-
#
|
29
|
+
#
|
30
30
|
# [A single e-mail string] "jon@example.com"
|
31
31
|
# [A array of e-mail addresses] ['jon@example.com', 'dave@example.com']
|
32
32
|
#
|
@@ -75,7 +75,7 @@ module AWS
|
|
75
75
|
#
|
76
76
|
# This uses the underlying Mail object from the mail gem
|
77
77
|
# You can pass in a Mail object, a Hash of params that will be parsed by Mail.new, or just a string
|
78
|
-
#
|
78
|
+
#
|
79
79
|
# Note that the params are different from send_email
|
80
80
|
# Specifically, the following fields from send_email will NOT work:
|
81
81
|
#
|
@@ -96,8 +96,9 @@ module AWS
|
|
96
96
|
# @option args [String] :to alias for :destinations
|
97
97
|
# @return [Response]
|
98
98
|
def send_raw_email(mail, args = {})
|
99
|
-
message = mail.is_a?(Hash) ? Mail.new(mail)
|
100
|
-
|
99
|
+
message = mail.is_a?(Hash) ? Mail.new(mail) : mail
|
100
|
+
raise ArgumentError, "Attachment provided without message body" if message.has_attachments? && message.text_part.nil? && message.html_part.nil?
|
101
|
+
package = { 'RawMessage.Data' => Base64::encode64(message.to_s) }
|
101
102
|
package['Source'] = args[:from] if args[:from]
|
102
103
|
package['Source'] = args[:source] if args[:source]
|
103
104
|
if args[:destinations]
|
@@ -105,7 +106,9 @@ module AWS
|
|
105
106
|
else
|
106
107
|
add_array_to_hash!(package, 'Destinations', args[:to]) if args[:to]
|
107
108
|
end
|
108
|
-
request('SendRawEmail', package)
|
109
|
+
result = request('SendRawEmail', package)
|
110
|
+
message.message_id = "#{result.parsed['SendRawEmailResult']['MessageId']}@email.amazonses.com"
|
111
|
+
result
|
109
112
|
end
|
110
113
|
|
111
114
|
alias :deliver! :send_raw_email
|
data/test/helper.rb
CHANGED
@@ -54,3 +54,9 @@ class Test::Unit::TestCase
|
|
54
54
|
Base.new(:access_key_id=>'123', :secret_access_key=>'abc')
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
# Deals w/ http://github.com/thoughtbot/shoulda/issues/issue/117, see
|
59
|
+
# http://stackoverflow.com/questions/3657972/nameerror-uninitialized-constant-testunitassertionfailederror-when-upgradin
|
60
|
+
unless defined?(Test::Unit::AssertionFailedError)
|
61
|
+
Test::Unit::AssertionFailedError = ActiveSupport::TestCase::Assertion
|
62
|
+
end
|
data/test/send_email_test.rb
CHANGED
@@ -46,6 +46,24 @@ class SendEmailTest < Test::Unit::TestCase
|
|
46
46
|
assert_equal 'xyz-123', result.request_id
|
47
47
|
end
|
48
48
|
|
49
|
+
should 'throw ArgumentException when attachment supplied without a body' do
|
50
|
+
#mock_connection(@base, :body => %{
|
51
|
+
# <SendRawEmailResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
52
|
+
# <SendRawEmailResult>
|
53
|
+
# <MessageId>abc-123</MessageId>
|
54
|
+
# </SendRawEmailResult>
|
55
|
+
# <ResponseMetadata>
|
56
|
+
# <RequestId>xyz-123</RequestId>
|
57
|
+
# </ResponseMetadata>
|
58
|
+
# </SendRawEmailResponse>
|
59
|
+
#})
|
60
|
+
message = Mail.new({:from => 'jon@example.com', :to => 'dave@example.com', :subject => 'Subject1'})
|
61
|
+
message.attachments['foo'] = { :mime_type => 'application/csv', :content => '1,2,3' }
|
62
|
+
assert_raise ArgumentError do
|
63
|
+
result = @base.send_raw_email message
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
49
67
|
should 'send a raw e-mail with a hash object' do
|
50
68
|
mock_connection(@base, :body => %{
|
51
69
|
<SendRawEmailResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
@@ -64,4 +82,4 @@ class SendEmailTest < Test::Unit::TestCase
|
|
64
82
|
assert_equal 'xyz-123', result.request_id
|
65
83
|
end
|
66
84
|
end
|
67
|
-
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,151 +1,171 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-ses
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 4
|
8
|
-
- 4
|
9
|
-
version: 0.4.4
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Drew Blas
|
13
9
|
- Marcel Molina Jr.
|
14
10
|
autorequire:
|
15
11
|
bindir: bin
|
16
12
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2013-04-30 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
22
16
|
name: xml-simple
|
23
|
-
|
24
|
-
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
version: "0"
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
31
23
|
type: :runtime
|
32
|
-
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: builder
|
35
24
|
prerelease: false
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ! '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '0'
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: builder
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
43
39
|
type: :runtime
|
44
|
-
version_requirements: *id002
|
45
|
-
- !ruby/object:Gem::Dependency
|
46
|
-
name: mime-types
|
47
40
|
prerelease: false
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: mime-types
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
55
|
type: :runtime
|
56
|
-
version_requirements: *id003
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: mail
|
59
56
|
prerelease: false
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: mail
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>'
|
69
|
+
- !ruby/object:Gem::Version
|
68
70
|
version: 2.2.5
|
69
71
|
type: :runtime
|
70
|
-
version_requirements: *id004
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: shoulda-context
|
73
72
|
prerelease: false
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>'
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 2.2.5
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: shoulda-context
|
81
|
+
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ! '>='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
81
87
|
type: :development
|
82
|
-
version_requirements: *id005
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: bundler
|
85
88
|
prerelease: false
|
86
|
-
|
87
|
-
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: bundler
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
88
100
|
- - ~>
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
segments:
|
91
|
-
- 1
|
92
|
-
- 0
|
93
|
-
- 0
|
101
|
+
- !ruby/object:Gem::Version
|
94
102
|
version: 1.0.0
|
95
103
|
type: :development
|
96
|
-
version_requirements: *id006
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: jeweler
|
99
104
|
prerelease: false
|
100
|
-
|
101
|
-
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.0.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: jeweler
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
102
116
|
- - ~>
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
segments:
|
105
|
-
- 1
|
106
|
-
- 5
|
107
|
-
- 2
|
117
|
+
- !ruby/object:Gem::Version
|
108
118
|
version: 1.5.2
|
109
119
|
type: :development
|
110
|
-
version_requirements: *id007
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rcov
|
113
120
|
prerelease: false
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
123
|
+
requirements:
|
124
|
+
- - ~>
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: 1.5.2
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: rcov
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ! '>='
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
121
135
|
type: :development
|
122
|
-
version_requirements: *id008
|
123
|
-
- !ruby/object:Gem::Dependency
|
124
|
-
name: flexmock
|
125
136
|
prerelease: false
|
126
|
-
|
127
|
-
|
137
|
+
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: flexmock
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
128
148
|
- - ~>
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
segments:
|
131
|
-
- 0
|
132
|
-
- 8
|
133
|
-
- 11
|
149
|
+
- !ruby/object:Gem::Version
|
134
150
|
version: 0.8.11
|
135
151
|
type: :development
|
136
|
-
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
155
|
+
requirements:
|
156
|
+
- - ~>
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.8.11
|
137
159
|
description: Client library for Amazon's Simple Email Service's REST API
|
138
160
|
email: drew.blas@gmail.com
|
139
161
|
executables: []
|
140
|
-
|
141
162
|
extensions: []
|
142
|
-
|
143
|
-
extra_rdoc_files:
|
163
|
+
extra_rdoc_files:
|
144
164
|
- LICENSE
|
145
165
|
- README.erb
|
146
166
|
- README.rdoc
|
147
167
|
- TODO
|
148
|
-
files:
|
168
|
+
files:
|
149
169
|
- .document
|
150
170
|
- CHANGELOG
|
151
171
|
- Gemfile
|
@@ -175,37 +195,32 @@ files:
|
|
175
195
|
- test/mocks/fake_response.rb
|
176
196
|
- test/response_test.rb
|
177
197
|
- test/send_email_test.rb
|
178
|
-
has_rdoc: true
|
179
198
|
homepage: http://github.com/drewblas/aws-ses
|
180
|
-
licenses:
|
199
|
+
licenses:
|
181
200
|
- MIT
|
182
201
|
post_install_message:
|
183
202
|
rdoc_options: []
|
184
|
-
|
185
|
-
require_paths:
|
203
|
+
require_paths:
|
186
204
|
- lib
|
187
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
requirements:
|
196
|
-
- -
|
197
|
-
- !ruby/object:Gem::Version
|
198
|
-
|
199
|
-
- 0
|
200
|
-
version: "0"
|
205
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
206
|
+
none: false
|
207
|
+
requirements:
|
208
|
+
- - ! '>='
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0'
|
211
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
|
+
none: false
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
201
217
|
requirements: []
|
202
|
-
|
203
218
|
rubyforge_project:
|
204
|
-
rubygems_version: 1.
|
219
|
+
rubygems_version: 1.8.19
|
205
220
|
signing_key:
|
206
221
|
specification_version: 3
|
207
222
|
summary: Client library for Amazon's Simple Email Service's REST API
|
208
|
-
test_files:
|
223
|
+
test_files:
|
209
224
|
- test/address_test.rb
|
210
225
|
- test/base_test.rb
|
211
226
|
- test/extensions_test.rb
|