Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SendGrid Template Engine 奮闘記
Search
Shogo Kawahara
March 28, 2017
Programming
0
290
SendGrid Template Engine 奮闘記
SendGrid Night #7 でのLT資料です
https://eventdots.jp/event/615303
Shogo Kawahara
March 28, 2017
Tweet
Share
More Decks by Shogo Kawahara
See All by Shogo Kawahara
データベースだけじゃないN+1とその対策
kawahara
0
580
CoderDojo 千葉県総武線沿線の取り組み
kawahara
1
350
Other Decks in Programming
See All in Programming
Prompt Engineering for Developers @ AWS Community Day Adria 2024
slobodan
0
100
Competitionsだけじゃない! Kaggle Notebooks Grandmasterのすすめ
corochann
2
940
GrafanaのHTTP API を眺めてみよう
rinchoku
0
470
sqlcを利用してsqlに型付けを
kamiyam
0
250
Why I Choose NetBeans for Jakarta EE
ivargrimstad
0
850
のびしろを広げる巻き込まれ力:偶然を活かすキャリアの作り方/oso2024
takahashiikki
1
250
Successful with Signals: 3 Rules for Your Architecture
manfredsteyer
PRO
0
140
Vue3の一歩踏み込んだパフォーマンスチューニング2024
hal_spidernight
3
2k
文化が生産性を作る
jimpei
3
630
Nuxt UI Pro、NuxtHub、Nuxt Scripts、Nuxtエコシステムをふんだんに利用して開発するコーポレートサイト@Vue Fes Japan 2024
shingangan
3
540
メルカリ ハロ アプリの技術スタック
atsumo
2
880
Honoの来た道とこれから
yusukebe
14
2.2k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
24
4.9k
Making the Leap to Tech Lead
cromwellryan
131
8.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
130k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
31
1.7k
Adopting Sorbet at Scale
ufuk
73
9k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Testing 201, or: Great Expectations
jmmastey
38
7k
What's in a price? How to price your products and services
michaelherold
243
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Raft: Consensus for Rubyists
vanstee
136
6.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
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 ։ൃͷ༨༟తʹ·ͩϝʔϧςϯϓϨʔτཧػೳΛ ࡞Εͳ͍߹