-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsendgridjp-ruby-example.rb
More file actions
63 lines (52 loc) · 2.7 KB
/
sendgridjp-ruby-example.rb
File metadata and controls
63 lines (52 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
require 'sendgrid-ruby'
require 'dotenv'
include SendGrid
# .envから環境変数を読み込む
Dotenv.load
sendgrid_api_key = ENV['API_KEY']
from = ENV['FROM']
tos = ENV['TOS'].split(',')
# メールの送信元を設定する
mail = SendGrid::Mail.new
mail.from = Email.new(email: from, name: '送信者名')
#メールの件名と本文を作成する
mail.subject = '[sendgrid-ruby-example] フクロウの名前は%fullname%さん'
mail.add_content(Content.new(type: 'text/plain', value: 'some text here'))
mail.add_content(Content.new(type: 'text/html', value: '<html><body> %familyname%さんは何をしていますか?<br>彼は%place%にいます。</body></html>'))
# 1つ目の宛先と、対応するSubstitutionタグを指定する
personalization1 = Personalization.new
personalization1.add_to(Email.new(email: tos[0]))
personalization1.add_substitution(Substitution.new(key: '%fullname%', value: '田中 太郎'))
personalization1.add_substitution(Substitution.new(key: '%familyname%', value: '田中'))
personalization1.add_substitution(Substitution.new(key: '%place%', value: '中野'))
mail.add_personalization(personalization1)
# 2つ目の宛先と、対応するSubstitutionタグを指定する
personalization2 = Personalization.new
personalization2.add_to(Email.new(email: tos[1]))
personalization2.add_substitution(Substitution.new(key: '%fullname%', value: '佐藤 次郎'))
personalization2.add_substitution(Substitution.new(key: '%familyname%', value: '佐藤'))
personalization2.add_substitution(Substitution.new(key: '%place%', value: '目黒'))
mail.add_personalization(personalization2)
# 3つ目の宛先と、対応するSubstitutionタグを指定する
personalization3 = Personalization.new
personalization3.add_to(Email.new(email: tos[2]))
personalization3.add_substitution(Substitution.new(key: '%fullname%', value: '鈴木 三郎'))
personalization3.add_substitution(Substitution.new(key: '%familyname%', value: '鈴木'))
personalization3.add_substitution(Substitution.new(key: '%place%', value: '中野'))
mail.add_personalization(personalization3)
# カテゴリ情報を付加する
mail.add_category(Category.new(name: 'Category1'))
# カスタムヘッダを利用する
mail.add_header(Header.new(key: 'X-Sent-Using', value: 'SendGrid-API'))
# 画像を添付する
attachment = Attachment.new
attachment.content = Base64.strict_encode64(File.read("gif.gif"))
attachment.filename = 'owl.gif'
mail.add_attachment(attachment)
# 認証情報を指定する
sg = SendGrid::API.new(api_key: sendgrid_api_key)
# メール送信を行い、レスポンスを表示させる
response = sg.client.mail._('send').post(request_body: mail.to_json)
puts response.status_code
puts response.body
puts response.headers