Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SendGrid Template Engine 奮闘記
Search
Shogo Kawahara
March 28, 2017
Programming
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SendGrid Template Engine 奮闘記
SendGrid Night #7 でのLT資料です
https://eventdots.jp/event/615303
Shogo Kawahara
March 28, 2017
More Decks by Shogo Kawahara
See All by Shogo Kawahara
strudel-rb について
kawahara
0
25
Google Apps Script で Ruby を動かす
kawahara
0
490
rspec の --tag オプションがこんなに便利だったなんて...
kawahara
0
28
Rubyで音声「データ」を作る
kawahara
0
110
データベースだけじゃないN+1とその対策
kawahara
0
1.4k
CoderDojo 千葉県総武線沿線の取り組み
kawahara
1
440
Other Decks in Programming
See All in Programming
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
300
Domain-Driven Transformation
hschwentner
2
2.3k
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.6k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
580
Next.js: The final boss of Web Performance
guaca
0
290
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.8k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
120
APNsからLive Activityを開始する話
yumnumm
0
170
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
1
590
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Leo the Paperboy
mayatellez
10
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
How GitHub (no longer) Works
holman
316
150k
Speed Design
sergeychernyshev
33
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Writing Fast Ruby
sferik
630
63k
Un-Boring Meetings
codingconduct
0
460
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Transcript
4FOE(SJE5FNQMBUF &OHJOFฃಆه 4IPHP,BXBIBSBTIPHPLBXBIBSB!DPEFBMBTJB 4FOE(SJE/JHIUWPM
ݪͰ͢ w ίσΞϧגࣜձࣾ$50 w LBXBIBSB w PPIBSBCVDZPV w 3VCZ 3VCZPO3BJMTͱ
Ұॹʹ4FOE(SJE׆༻த
4FOE(SJEઈࢍ׆༻த ϦϞʔτՄͷ෭ۀϑϦʔϥϯε Ҋ݅Λܝࡌͨ͠ ϫʔΩϯάϦΫϧʔςΟϯάαʔϏε IUUQTXXXDPEFBMXPSL Ԡืϝοηʔδͷར༻ͳͲ ٻ৬ऀ༷࠾༻୲ऀ༷ ϝʔϧૹ৴ "1*W #PVODF#MPDLใͳͲ
$VTUPNFS4VQQPSU 5FBN .BSLFUJOH&NBJM ʹΑΔϝϧϚΨͷൃߦӦۀ
4FOE(SJE5FNQMBUF&OHJOFͬͯ·͢ 4FOE(SJE5FNQMBUF&OHJOFJT"XFTPNF
4FOE(SJE5FNQMBUF&OHJOF ͬͯ·͍ͨͭ͠࠷ۙ·Ͱ #VU XFEPO`UVTFJUBOZNPSF8IZ
4FOE(SJE5FNQMBUF&OHJOF ͱ BMXPSL Ԡืϝοηʔδͷར༻ͳͲ ٻ৬ऀ༷࠾༻୲ऀ༷ ϝʔϧૹ৴ "1*W #PVODF#MPDLใͳͲ $VTUPNFS4VQQPSU 5FBN
.BSLFUJOH&NBJM -FHBDZ ʹΑΔϝϧϚΨͷൃߦӦۀ ֤छϝʔϧͷςϯϓϨʔτͷཧ .BOBHJOH5FNQMBUF&OHJOF ͷߏ
ར༻͢ΔϝϦοτ w ϝʔϧςϯϓϨʔτػೳΛ4FOE(SJEଆ͕ఏڙͯ͠ ͘ΕΔ w ΩϟϯϖʔϯใͳͲΛ$VTUPNFS4VQQPSU 5FBN͕։ൃνʔϜͷखΛΘͣʹૠೖ͢Δ͜ͱ ͕Ͱ͖Δ
4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ ςϯϓϨʔτΛ࡞͠·͢
4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ όʔδϣϯΛ࡞͠·͢
4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ
4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ
w (FNTͷՃ w TFOEHSJESVCZ σϞͰWܥΛར༻ w W࣌ʹൺੲʹ͘Β͍ͯ͘͢ͳ͍ͬͯ Δؾ͕͠·͢Α TFOEHSJESVCZWJT
CFUUFSUIBOPMEPOF 4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ XJUI3VCZ4%,
4FOE(SJE5FNQMBUF&OHJOF ؆୯ͳ͍ํ XJUI3VCZ4%, require 'sendgrid-ruby' personalization = SendGrid::Personalization.new personalization.to =
SendGrid::Email.new(email: '
[email protected]
') personalization.substitutions = SendGrid::Substitution.new(key: '-username-', value: 'ݪ') mail = SendGrid::Mail.new mail.from = SendGrid::Email.new(email: '
[email protected]
') mail.personalizations = personalization mail.template_id = '9c4878c0-0f94-4f8d-ae6b-2b86b499a1aa' sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY']) response = sg.client.mail._('send').post(request_body: mail.to_json)
%&.05*.& w ޭͨ͠Βഥखͱ͔͍ͩ͘͞
ͬͯΘ͔ͬͨσϝϦοτ ɾҙͳͲ w TVCTUJUVUJPOUBHT w )5.-&TDBQFΛߦͬͯ͘Εͳ͍ɻIUNMUFYUڞ௨ Ͱར༻͞ΕΔͷͰɺͱΓ͋͑ͣΤεέʔϓ͖͢จ ࣈΛল͘ॲཧΛߦͬͨ w ςϯϓϨʔτػೳͷͰͳ͍͚Ͳɻɻɻ
w IUUQTTFOEHSJEDPNEPDT"1*@3FGFSFODF 4.51@"1*TVCTUJUVUJPO@UBHTIUNM
ͬͯΘ͔ͬͨσϝϦοτ ɾҙͳͲ w ςϯϓϨʔτ͕૿͑Δͱཧͮ͠Β͍αʔϏε ։࢝ॳظݸҎԼ࠷ۙݸҎ্ w λάͱ͔Ͱݕࡧ͕͋ͬͨΒΑ͔ͬͨͳ͊ w $VTUPNFS4VQQPSUνʔϜ͕ςϯϓϨʔτཧ ͖͠Εͳ͘ͳͬͯ͠·ͬͨɻ
ͬͯΘ͔ͬͨσϝϦοτ ɾҙͳͲ w ຊ൪εςʔδϯάڥͳͲɺෳڥͰͷςϯ ϓϨʔτཧ͕Ͱ͖ͳ͍ υΩϡϝϯτݟΔݶΓ BDUJWFͳͷ͕ૹΒΕͯ͠·͏ εςʔδϯάς ετͱ͔Ͳ͏͢ΔͶʔΜ$4νʔϜ͕͜͜ͰΑ͘ ࣄނͬͨɻ
ͬͯΘ͔ͬͨσϝϦοτ ɾҙͳͲ w ຊ൪εςʔδϯάڥͳͲɺෳڥͰͷςϯ ϓϨʔτཧ͕Ͱ͖ͳ͍ υΩϡϝϯτݟΔݶΓ BDUJWFͳͷ͕ૹΒΕͯ͠·͏ εςʔδϯάς ετͱ͔Ͳ͏͢ΔͶʔΜ$4νʔϜ͕͜͜ͰΑ͘ ࣄނͬͨɻ
αϙʔτᐌ͘ ʮ4VC6TFS͚ͬͯΔ͖ʯ ͱͷ͜ͱͰͨ͠
࠷ऴతʹ w ྲྀੴʹऩू͔ͭͳ͘ͳ͖ͬͯͨ w ڞ௨෦ݸผ෦ͳͲͷϢʔεέʔεΛੳͯ͠ɺͪΌΜ ͱࣗͨͪͷۀʹ߹͏ςϯϓϨʔτΤϯδϯ࡞Γ·ͨ͠
4FOE(SJE5FNQMBUF&NBJM ͜Μͳ࣌ʹΦεεϝ w ςϯϓϨʔτύλʔϯ͕ͦΜͳʹଟ͘ͳ͍߹ w ։ൃͷ༨༟తʹ·ͩϝʔϧςϯϓϨʔτཧػೳΛ ࡞Εͳ͍߹