sendgrid-ruby 0.0.2 → 0.0.3
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/README.md +180 -9
- data/lib/sendgrid-ruby.rb +6 -4
- data/lib/sendgrid/version.rb +1 -1
- metadata +3 -5
- data/test.rb +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 852d4c2923fcdcae762675d591aae678ff97664d
|
|
4
|
+
data.tar.gz: 95acbc4f1b36c036fceac5cda5eba764718021b0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: abd3afa7292e24ef33ea86f70515a49f9a81b40484fc3c6f88ad37b430d00f42bbb0bee6f7aa3d50384d34055afd9738d66df170772f6cc4f298219c6b89d27b
|
|
7
|
+
data.tar.gz: 9c77400d124690b7deb810e760d1f1f3dcc6c35d8cf8a908a04205eeb8738d3591d341d13361e3b78f9803ab281db61c701f7a34796124a11a7b2c2020be6b7f
|
data/README.md
CHANGED
|
@@ -26,7 +26,14 @@ Create a new client with your SendGrid Username and Password.
|
|
|
26
26
|
```ruby
|
|
27
27
|
require 'sendgrid-ruby'
|
|
28
28
|
|
|
29
|
+
# As a hash
|
|
29
30
|
client = SendGrid::Client.new(api_user: 'SENDGRID_USERNAME', api_key: 'SENDGRID_PASSWORD')
|
|
31
|
+
|
|
32
|
+
# Or as a block
|
|
33
|
+
client = SendGrid::Client.new do |c|
|
|
34
|
+
c.api_user = 'SENDGRID_USERNAME'
|
|
35
|
+
c.api_key = 'SENDGRID_PASSWORD'
|
|
36
|
+
end
|
|
30
37
|
```
|
|
31
38
|
|
|
32
39
|
Create a new Mail object and send:
|
|
@@ -69,21 +76,185 @@ params = {
|
|
|
69
76
|
}
|
|
70
77
|
```
|
|
71
78
|
|
|
72
|
-
#### Using the X-SMTPAPI Header
|
|
73
79
|
|
|
74
|
-
|
|
80
|
+
#### Setting Params
|
|
81
|
+
|
|
82
|
+
Params can be set in the usual Ruby ways, including a block or a hash.
|
|
83
|
+
|
|
84
|
+
````ruby
|
|
85
|
+
mail = SendGrid::Mail.new do |m|
|
|
86
|
+
m.to = 'rbin@sendgrid.com'
|
|
87
|
+
m.from = 'taco@rbin.codes'
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
client.send(SendGrid::Mail.new(to: 'rbin@sendgrid.com', from: 'taco@cat.limo'))
|
|
91
|
+
````
|
|
92
|
+
|
|
93
|
+
#### :to
|
|
94
|
+
|
|
95
|
+
Using the **:to** param, we can pass a single email address as a string, or an array of email address strings.
|
|
96
|
+
|
|
97
|
+
````ruby
|
|
98
|
+
mail = SendGrid::Mail.new
|
|
99
|
+
mail.to = 'taco@rbin.codes'
|
|
100
|
+
# or
|
|
101
|
+
mail.to = ['Example Dude <example@email.com>', 'john@email.com']
|
|
102
|
+
# or
|
|
103
|
+
mail.to = ['rbin@sendgrid.com', 'taco@cat.limo']
|
|
104
|
+
````
|
|
105
|
+
|
|
106
|
+
#### :from
|
|
107
|
+
|
|
108
|
+
```ruby
|
|
109
|
+
mail = SendGrid::Mail.new
|
|
110
|
+
mail.from = 'me@sendgrid.com'
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### :cc
|
|
114
|
+
|
|
115
|
+
As with **:to**, **:cc** can take a single string or an array of strings.
|
|
116
|
+
|
|
117
|
+
```ruby
|
|
118
|
+
mail = SendGrid::Mail.new
|
|
119
|
+
mail.cc = ['robin@sendgrid.com', 'taco@cat.limo']
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
#### :bcc
|
|
123
|
+
|
|
124
|
+
As with **:to** and **:cc**, **:bcc** can take a single string or an array of strings.
|
|
125
|
+
|
|
126
|
+
```ruby
|
|
127
|
+
mail = SendGrid::Mail.new
|
|
128
|
+
mail.bcc = ['robin@sendgrid.com', 'taco@cat.limo']
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
#### :subject
|
|
132
|
+
|
|
133
|
+
```ruby
|
|
134
|
+
mail = SendGrid::Mail.new
|
|
135
|
+
mail.subject = 'This is a subject string'
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Email Bodies:
|
|
139
|
+
#### :text
|
|
140
|
+
|
|
141
|
+
Using the **:text** param allows us to add plain text to our email body.
|
|
142
|
+
|
|
143
|
+
```ruby
|
|
144
|
+
mail = SendGrid::Mail.new
|
|
145
|
+
mail.text = 'WHATTUP KITTY CAT!?'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### :html
|
|
149
|
+
|
|
150
|
+
Using the **:html** param allows us to add html content to our email body.
|
|
151
|
+
```ruby
|
|
152
|
+
mail = SendGrid::Mail.new
|
|
153
|
+
mail.html = '<html><body>Stuff in here, yo!</body></html>'
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
## Using SendGrid's X-SMTPAPI Header
|
|
158
|
+
|
|
159
|
+
To utilize the X-SMTPAPI header, we have directly integrated the [smtpapi-ruby](https://github.com/SendGridJP/smtpapi-ruby) gem.
|
|
160
|
+
|
|
161
|
+
#### add_to
|
|
162
|
+
|
|
163
|
+
You can directly generate an x-smtpapi add_to header instead of using to *:to* param. ***Please note, this will override all params.***
|
|
164
|
+
|
|
165
|
+
```ruby
|
|
166
|
+
mail = SendGrid::Mail.new
|
|
167
|
+
mail.smtpapi.add_to('me@rbin.codes')
|
|
168
|
+
mail.smtpapi.add_to('eddiez@otheremail.com')
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
#### set_tos
|
|
172
|
+
|
|
173
|
+
```ruby
|
|
174
|
+
mail.smtpapi.set_tos(['rbin@cat.codes', 'eddie@taco.bell'])
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
#### add_substitution
|
|
178
|
+
|
|
179
|
+
```ruby
|
|
180
|
+
mail = SendGrid::Mail.new
|
|
181
|
+
mail.smtpapi.add_substitution('keep', array('secret')) # sub = {keep: ['secret']}
|
|
182
|
+
mail.smtpapi.add_substitution('other', array('one', 'two')) # sub = {keep: ['secret'], other: ['one', 'two']}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### set_substitutions
|
|
186
|
+
|
|
187
|
+
```ruby
|
|
188
|
+
mail = SendGrid::Mail.new
|
|
189
|
+
mail.smtpapi.set_substitutions({'keep' => 'secret'}) # sub = {keep: ['secret']}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### add_unique_arg
|
|
75
193
|
|
|
76
|
-
Create your own and pass it in to the initialize method:
|
|
77
194
|
```ruby
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
header.add_substitution('keep', ['secret'])
|
|
81
|
-
mail = SendGrid::Mail.new(smtpapi: header)
|
|
195
|
+
mail = SendGrid::Mail.new
|
|
196
|
+
mail.smtpapi.add_unique_arg('cat', 'dogs')
|
|
82
197
|
```
|
|
83
|
-
|
|
198
|
+
|
|
199
|
+
#### set_unique_args
|
|
200
|
+
|
|
84
201
|
```ruby
|
|
85
202
|
mail = SendGrid::Mail.new
|
|
86
|
-
mail.smtpapi.
|
|
203
|
+
mail.smtpapi.set_unique_args({'cow' => 'chicken'})
|
|
204
|
+
mail.smtpapi.set_unique_args({'dad' => 'proud'})
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### add_category
|
|
208
|
+
|
|
209
|
+
```ruby
|
|
210
|
+
mail = SendGrid::Mail.new
|
|
211
|
+
mail.smtpapi.add_category('tactics') # category = ['tactics']
|
|
212
|
+
mail.smtpapi.add_category('advanced') # category = ['tactics', 'advanced']
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### set_categories
|
|
216
|
+
|
|
217
|
+
```ruby
|
|
218
|
+
mail = SendGrid::Mail.new
|
|
219
|
+
mail.smtpapi.set_categories(['tactics', 'advanced']) # category = ['tactics', 'advanced']
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
#### add_section
|
|
223
|
+
|
|
224
|
+
```ruby
|
|
225
|
+
mail = SendGrid::Mail.new
|
|
226
|
+
mail.smtpapi.add_section('-charge-', 'This ship is useless.'])
|
|
227
|
+
mail.smtpapi.add_section('-bomber-', 'Only for sad vikings.'])
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
#### set_sections
|
|
231
|
+
|
|
232
|
+
```ruby
|
|
233
|
+
mail = SendGrid::Mail.new
|
|
234
|
+
mail.smtpapi.set_sections({'-charge-' => 'This ship is useless.'})
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### add_filter
|
|
238
|
+
|
|
239
|
+
```ruby
|
|
240
|
+
mail = SendGrid::Mail.new
|
|
241
|
+
mail.smtpapi.add_filter('footer', 'enable', 1)
|
|
242
|
+
mail.smtpapi.add_filter('footer', 'text/html', '<strong>boo</strong>')
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
#### set_filters
|
|
246
|
+
|
|
247
|
+
```ruby
|
|
248
|
+
mail = SendGrid::Mail.new
|
|
249
|
+
filter = {
|
|
250
|
+
'footer' => {
|
|
251
|
+
'setting' => {
|
|
252
|
+
'enable' => 1,
|
|
253
|
+
"text/plain" => 'You can haz footers!'
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
mail.smtpapi.set_filters(filter)
|
|
87
258
|
```
|
|
88
259
|
|
|
89
260
|
## Contributing
|
data/lib/sendgrid-ruby.rb
CHANGED
|
@@ -6,15 +6,17 @@ require 'rest-client'
|
|
|
6
6
|
|
|
7
7
|
module SendGrid
|
|
8
8
|
class Client
|
|
9
|
-
|
|
9
|
+
attr_accessor :api_user, :api_key, :host, :endpoint
|
|
10
10
|
|
|
11
|
-
def initialize(params)
|
|
12
|
-
@api_user = params.fetch(:api_user)
|
|
13
|
-
@api_key = params.fetch(:api_key)
|
|
11
|
+
def initialize(params = {})
|
|
12
|
+
@api_user = params.fetch(:api_user, nil)
|
|
13
|
+
@api_key = params.fetch(:api_key, nil)
|
|
14
14
|
@host = params.fetch(:host, 'https://api.sendgrid.com')
|
|
15
15
|
@endpoint = params.fetch(:endpoint, '/api/mail.send.json')
|
|
16
16
|
@conn = params.fetch(:conn, create_conn)
|
|
17
17
|
@user_agent = params.fetch(:user_agent, 'sendgrid/' + SendGrid::VERSION + ';ruby')
|
|
18
|
+
yield self if block_given?
|
|
19
|
+
raise SendGrid::Exception.new('api_user and api_key are required') unless @api_user && @api_key
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
def send(mail)
|
data/lib/sendgrid/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sendgrid-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robin Johnson
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-08-
|
|
12
|
+
date: 2014-08-13 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: smtpapi
|
|
@@ -140,7 +140,6 @@ files:
|
|
|
140
140
|
- lib/sendgrid/mail.rb
|
|
141
141
|
- lib/sendgrid/version.rb
|
|
142
142
|
- sendgrid-ruby.gemspec
|
|
143
|
-
- test.rb
|
|
144
143
|
homepage: http://github.com/sendgrid/sendgrid-ruby
|
|
145
144
|
licenses:
|
|
146
145
|
- MIT
|
|
@@ -165,5 +164,4 @@ rubygems_version: 2.4.1
|
|
|
165
164
|
signing_key:
|
|
166
165
|
specification_version: 4
|
|
167
166
|
summary: Official SendGrid Gem
|
|
168
|
-
test_files:
|
|
169
|
-
- test.rb
|
|
167
|
+
test_files: []
|
data/test.rb
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
require './lib/sendgrid-ruby.rb'
|
|
2
|
-
|
|
3
|
-
client = SendGrid::Client.new ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD']
|
|
4
|
-
email = SendGrid::Mail.new(from: 'root@mail.doesnotscale.com', subject: 'Test', text: 'Body of sexy')
|
|
5
|
-
email.add_to 'eddiezane@sendgrid.com'
|
|
6
|
-
email.add_to 'rbin@sendgrid.com'
|
|
7
|
-
puts client.send(email)
|