Laravel勉強会 2016/6/17 発表資料
Laravel with SendGrid2016.5.17
View Slide
I am …Twitter: @ichikawa_0829▸ ϑϦʔϥϯε▸ dots.
What is SendGrid?
What is SendGrid▸ ϝʔϧ৴Λߦ͏ͨΊͷΫϥυαʔϏε▸ ΞΧϯτൃߦ͢Ε͙͢ʹSMTPଓɺWeb(REST) APIɺϚʔέςΟϯάϝʔϧػೳΛͬͯϝʔϧΛૹ৴Ͱ͖Δ▸ ແྉ͕͋Δ(ແྉͰ400௨/)▸ SMTP APIͱ͍͏ػೳ͕ศར▸ ։෧ΫϦοΫͷΠϕϯτΛHookͰ͖Δ▸ ཧը໘͔Β༷ʑͳ౷ܭใ͕ࢀরՄೳAbout
In Laravel
LaravelͰϝʔϧΛૹ৴͢Δ߹▸ SendGridͷSMTPαʔόΛ͏▸ WebAPIΛ͏In Laravel
SendGridͷSMTPαʔόΛ͏▸ ެࣜHP ͰLaravelͰૹ৴͢Δํ๏ͱͯ͠ɺ͜ͷํ๏͕հ͞Ε͍ͯ·͢▸ config/mail.phpʹSendGridͷSMTPαʔόͷଓใΛࢦఆ͢Δ͚ͩɻ▸ ؆୯ʂIn Laravel
return array('driver' => 'smtp','host' => 'smtp.sendgrid.net','port' => 587,'from' => array('address' => '[email protected]', 'name' => 'John Smith'),'encryption' => 'tls','username' => 'sendgrid_username','password' => 'sendgrid_password',);config/mail.phpIn LaravelSendGridͷSMTPαʔόΛ͏
Web APIΛͬͯϝʔϧΛૹ৴͢Δ߹▸ SendGridͷ΄΅શͯͷػೳWebAPIܦ༝Ͱ༻͢ΔͨΊͷΤϯυϙΠϯτ͕༻ҙ͞Ε͍ͯΔ▸ curlެࣜϥΠϒϥϦɺίϛϡχςΟϕʔεϥΠϒϥϦΛ༻ͯ͠ϦΫΤετ͛Δ▸ SendGridͷSMTPαʔόΛ͏ΑΓॲཧ͕ૣ͘ऴΔέʔε͕ଟ͍ͷͰՄೳͳΒWeb APIΛ͏͜ͱ͕ਪ͞Ε͍ͯΔIn Laravel
ૣ͘ͳΔՄೳੑ͕͋ΔͳΒWebAPI͍͍ͨ(͔͠Կނ͔֎ʹ͔ͬͯSMTPଓग़དྷͳ͍͠…)
ެࣜϥΠϒϥϦΛͬͯΈΔ▸ sendgrid/sendgrid-php ΛcomposerͳͲͰΠϯετʔϧ͢Δ▸ $sendgrid = new SendGrid('YOUR_SENDGRID_APIKEY');▸ $email = new SendGrid\Email();▸ $email->addTo('[email protected]'); // ͱ͔৭ʑઃఆ͢Δ▸ $sendgrid->send($email);In Laravel
͏ͪΐͬͱLaravelͬΆ͘Γ͍ͨͳ͊…
͏ͪΐͬͱLaravelͬΆ͘Γ͍ͨͳ͊…(ͩͬͯMail::send()Ͱॻ͍ͯ͋Δطଘίʔυ͕ࢁɻɻɻ)
ଞΛ୳ͯ͠ݟͨΒͳ͍ɻɻɻ
࡞ͬͪΌ͓ʂ
ϝʔϧपΓͲ͏ͳͬͯΔʁ▸ mail.driverͷઃఆʹ߹ΘͤͨTransportΫϥεΛ࣋ͭSwiftMailerΛ$app['swift.mailer']ʹొ▸ $app['swift.mailer']Λ࣋ͭIlluminate\Mail\Mailerͱ͍͏Ϋϥεʹ৭ʑઃఆΛߦ͍$app['mailer']ʹొ▸ Illuminate\Support\Facades\MailͰ$app['mailer']Λొ࡞ͬͪΌ͓ʂ
ҙ֎ͱ࡞ΕΔ͔▸ ཁSendGrid༻ͷTransportΫϥε࡞ΕOK (࣮ࡍͦΕΛొ͢ΔҝͷTransportManagerͱɺMailServiceProviderඞཁ)▸ MandrillMailgunͷιʔεݟͨΒGuzzleHttp\ClientͰPOSTͯ͠Δ͚ͩ▸ ΠέΔʂΠέΔͧʂ࡞ͬͪΌ͓ʂ
laravel-sendgrid-deriverhttps://packagist.org/packages/s-ichikawa/laravel-sendgrid-driver
laravel-sendgrid-driver▸ ଞͷdriverͱಉ༷ɺconfigϑΝΠϧʹز͔ͭઃఆΛՃ͢ΕOK▸ SendGridΛศརʹ͏ͨΊʹ͔ܽͤͳ͍SMTP API͑ΔΑ͏ʹ͠·ͨ͠▸ MailServiceProviderTransportManagerݩͷͷΛܧঝͯ͠ΔͷͰଞͷdriverͦͷ··͑Δ࡞ͬͪΌ͓ʂ
࡞ͬͪΌ͓ʂ3/1 ॳPull Request5/17 500install5/25 1000install5/13 N.Yͷਓ͔Β࣭6/13 2000install
·ͱΊ▸ ύοέʔδ։ൃLaravelͷ͍͍ษڧʹͳΓ·ͨ͠▸ SendGridศརɻLaravelͰ͏ͳΒlaravel-sendgrid-driverࢼ͍͚ͯͨͩ͠Δͱخ͍͠Ͱ͢ɻ(Կ͔͋Ε༏͘͠PRΛ…)▸ ެ։ͨ͠ʹ͍ͭͯͷ࣭PullRequestͬͺΓӳޠ͕ଟ͍ɻӳޠ͕ΜΖ͏…▸ composer require Ͱࣗͷύοέʔδ͕ೖΔͷخ͍͠ɻͬͯΒ͑Δͱࣗ৴ʹͳΔɻ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠