SendGridどうも、こんにちわ。最近周りでもLaravelでシステム構築する案件が着実に増えてきていることを実感していますが、今回はLaravelでSendGridを使ってSMTP方式でメール送信する方法を紹介したいと思います。本来はSMTPではなくWebAPIでメール送信した方がいいのですが、とりあえず今回はSMTPでのメール送信方法をまず紹介したいと思います。まとめ環境なお、今回の環境は下記の通りとなります。7.1.17AWSのEC2で運用しているLaravelアプリケーションでLaravelのバージョンは5.5、PHPのバージョンは7.1.17という環境になります。SendGridとは?さて、早速設定方法を紹介していきたいところですが、その前に簡単に「SendGrid」の紹介をしておきたいと思います。SendGridとはメール送信を行ってくれるクラウドサービスになり、その到達率の高さやクラウドならではの拡張性、または配信状況や開封状況なども確認できることから多くの企業やWebアプリケーションで採用されているサービスになります。公式サイトの導入事例を見ても、「クラウドワークス」や「Chatwork」などWeb系の仕事をされている方なら誰もが知っている企業やサービスで実際に導入されていることが分かりますね。メールサーバーって自前で構築して運用するとなると到達率など様々なハードルがあって結構大変なので、こういったサービスはとても需要がありますよね。LaravelでSendGridを使う方法ということで、実際に設定方法を紹介していきたいと思います。言ってもとても簡単なのですぐ終わります。公式サイトのこちらのページで紹介されているようにLaravelの.envファイルに必要情報を記載してあげればいいだけです。Smith"MAIL_FROM_ADDRESS=from@example.comこれだけです。念のため、各項目を1つずつ説明します。MAIL_DRIVERMAIL_DRIVERはその名の通りメールドライバーになります。今回はSMTP方式なので、「smtp」と入力してください。MAIL_HOSTMAIL_HOSTは、sendgridのホスト名になります。上記のコードの通り「smtp.sendgrid.net」と入力してください。MAIL_PORTMAIL_PORTもその名の通り、メール送信で使用するポート番号になります。ここもマニュアル通り「587」と入力してください。MAIL_USERNAMEMAIL_USERNAMEは、ユーザー名になるのでアカウント作成時に発行されたユーザーIDを入力してください。英数字の羅列のあとに「@kke.com」になっているやつですね。MAIL_PASSWORDMAIL_PASSWORDもアカウント作成時に自分で決めたパスワードを入力してください。MAIL_ENCRYPTIONMAIL_ENCRYPTIONは暗号化になります。こちらも上のコードの通り「tls」と入力してください。MAIL_FROM_NAMEMAIL_FROM_NAMEは、送信元の名前になります。メールを送信して受信したユーザーのメールソフトで表示される名前です。ご自分の環境に沿った名前を自由に決めてください。MAIL_FROM_ADDRESSMAIL_FROM_ADDRESSは、送信元メールアドレスになります。ここも自由に決めてください。「noreply@example.com」や「support@example.com」といったメールアドレスが多いかと思います。全て入力したらLaravelの設定は完了です。AWSのアウトバウンド設定で587ポートを開放するLaravelの設定が完了したら、続いてAWS側の設定をします。別にこちらから設定しても大丈夫です。AWSの管理画面にログインして、LaravelがインストールされてあるEC2に紐づいているセキュリティグループのアウトバウンドを開いて(下図参照)、先ほどLaravelで設定したポート番号(587)を開放するだけです。これでAWS側の設定は完了です。まとめこれで全ての設定が完了したのでメール送信ができるようになっていると思います。送信ができるようになればSendGridのダッシュボードでリクエスト回数や到達率、開封状況が見れるので確認してみてください。ダッシュボードへの反映にはタイムラグがあるので少し時間をおいて確認するといいと思います。いうことで、今回はAWSのEC2上で運用しているLaravelアプリケーションからSendGridを使ってメールを送信する方法を紹介させていただきました。SendGridの公式でも推奨されていますが、本来であればポートの開放も必要ないWebAPIのほうがおすすめです。WebAPIを使用して送信する方法についてはまた次の機会に紹介したいと思います。拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。いろいろな人の話しを聞くのが好きなので、このブログを通して多くの人と繋がりが出来たら嬉しいです。noteとInstagramもやっているのでフォローしてくれたらありがたいです!noteinstagram詳しく見るプログラミングの記事一覧へ他のブログも見る人気記事2018.01.09FITNESS【ダイエット】確実に痩せたいなら、まずやるべきこと8選。コメントをキャンセルメールアドレスが公開されることはありません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。拠点にサーフィンとスノーボードが好きなフリーランスのWebクリエイターです。普段はプログラム書いたりデザインしたり映像作ったりしています。nori-life.com。