こんにちは!
川口でWEBアプリ開発を行っていますテダスクのSeitoです。
TEDASKではお客様のWebサービス制作の支援を行っている傍ら自社のWebサービスも開発しています。
Webサービスやメールマガジンでメールを送信するときに大事になるのが、確実にメールを届けることです。
SendGridはより確実にメール届けるためのメール送信サービスで、TEDASKでWEBサービスを開発する際にはSendGridをおすすめしています。
今回は、SendGridを初めて使う場合にSendGrid側の設定について簡単にまとめてみましたので、参考にしてみて下さい。
SendGridとは
SendGridとはメール配信サービスです。
主にメールマガジンやWeb上から送信されるメールにSendGridを利用する事で、より確実にメールが届けられるように仕組み化されているサービスです。
SendGridは無料プランがあり月に12,000通*までが無料で利用出来るため、小規模事業で利用する分には無料でまかなえる場合が多く、非常に使い勝手の良いメール送信サービスです。
また開発用に公式のライブラリーも公開されており、多くの言語に対応しているため開発する上でもハードルを低くしてくれているのも嬉しい点です。
*日本代理店から契約した場合の2024年1月21日時点での情報です。
日本代理店サイト:https://sendgrid.kke.co.jp/
SendGrid公式サイト:https://app.sendgrid.com/
SendGridの日本版と海外版の違い
SendGridで検索すると「構造計画研究所」という日本の代理店が出てきます。
検索結果のもう少し下を見てみると海外の公式サイトが出てきます。
前述したとおり、構造計画研究所は日本の代理店ですので、こちらから契約しても公式サイトの英語サイトから契約しても管理画面や機能はまったく同じになります。
ただ、日本の代理店の場合は法人契約が必須ですので、もし個人事業の場合は英語の公式サイトからの登録が必要になりますので、その点が大きな違いと言えるかと思います。
また送信制限では、日本代理店を通した場合は無料プランで12,000通と書きましたが、公式サイトで登録した場合は1日100通までと送信数がかなり抑えられています。
送信者情報の登録
早速ですが、SendGridの登録から送信するためのAPI取得までの説明をしていきたいと思います。
登録作業については一般的な登録方法と変わりませんので、詳細は省かせていただきます。
SendGridの管理画面にログインしたら、最初に「Create identity」ボタンをクリックして、送信者情報の登録を行います。
SendGridではメールの送信者情報の登録を義務づけいて、事業者名、住所、電話番号の登録が必須ですので正しく情報を登録しましょう。
以下のリンクは公式サイトの説明です。いわゆるスパム防止対策のひとつで、不正利用防止のために登録が必要となっています。
英語サイトですので、英語で入力しましょう。
この中で「From Email Address」とありますが、これは事業で利用しているメールアドレスを入力しましょう。
例えば私の場合はtedask.jpのメールアドレスがあるのでそのドメインでメールアドレスを設定します。
Webアプリ用にこれからメールアドレスを設定する場合はそれは別に作るので、ここはあくまで連絡用のメールアドレスを設定しましょう。
登録が完了すると、確認用のメールが届くのでリンクをクリックして、VerifiedとなればOKです。
Domain Authenticationの設定
次にWebアプリ用に使う独自ドメインをSendGridで使うための設定をしていきます。
左メニューの「Settings」の中の「Sender Authentication」をクリックします。
「Authenticate Your Domain」をクリックします。(画像ではすでに一つドメインが登録されていますが、初めての場合は何もないはずです。)
DNS hostについて聞かれますが、日本のホスティングサービスは表示されませんので、「Other Host(Not Listed)」を選択して、次の項目も空のままで「Next」をクリックします。
「From Domain」に今回利用するアプリ用のドメインを入力して「Next」をクリックします。
そうすると、DNSの設定情報が表示されるので、独自ドメインのネームサーバーが設定されいるホスティングサービスでSendGrid用のサブドメインの設定を行います。(DNSの設定については省略します。)
サーバーでの設定が完了したら、「I’ve added these records.」にチェックを入れて「Verify」をクリックします。
「It worked!」となればOKです。
「Sender Authentication」の画面で、「Status」がVerifiedになっているはずです。
SMTP送信とWEBアプリ送信の違い
次に、Laravelでメールを送信するための設定を行いますが、SendGridでは2種類のメールの送信方法があります。
私のLaravelの場合の使い分けとしては
Web API:お知らせメールやアプリ内でメール送信が必要な場合(SendGridのライブラリーのメソッドで送信する場合)
SMTP Relay:LaravelのAuth機能を使ってユーザー登録時にメールを送信する場合(Laravel本体から送信する場合)
としています。
SMTP Relayを設定するとSMTPのパスワード用にAPI Keyが発行されるので、基本的にSMTP Relayだけ利用すれば良いと思います。
Laravelに独自にユーザー登録機能を作る場合や、そもそも登録機能は不要で、メールを飛ばすだけという場合はWeb APIでAPIだけ発行すればOKです。
SMTP送信用の設定とLaravel .envファイルの編集
では今回はSMTP経由でメールを送信する場合の設定をしていきます。
左メニューの「Email API」の中の「Integration Guide」をクリックします。
「SMTP Relay」を選択します。
「Create an API key」でアプリ名を入力して、「Create Key」をクリックします。
するとAPIキーが作成されます。
この情報を元にLaravelの環境設定ファイル「.env」を編集していきます。
MAIL_MAILER=smtp MAIL_HOST=smtp.sendgrid.net MAIL_PORT=465 MAIL_USERNAME=apikey MAIL_PASSWORD=【生成されたapi】 MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=【アプリから送信するメールアドレス】 MAIL_FROM_NAME="${APP_NAME}" SENDGRID_API_KEY=【生成されたapi】 SENDGRID_FROM=【アプリから送信するメールアドレス】 SENDGRID_FROM_NAME="${APP_NAME}"
MAIL_から始まる変数はユーザー登録時に送信されるメールでSMTPの設定です。
SENDGRID_から始まる変数は、ユーザー登録以外で通知関係などSendGridのライブラリーから送信する場合の設定です。APIキーについては、SMTPと同じものを利用して問題ありません。
この設定が終わったらAuthenticationと同様に、接続確認をして確認がとれれば無事送信が出来るようになっているはずです。
公式サイトに詳しい説明もありますので、参考にしてみて下さい。
https://sendgrid.kke.co.jp/blog/?p=12760&gad_source=1
トラッキング機能の停止
SendGridは送信するメールにリンクがある場合、デフォルトでトラッキング機能が有効になっているたSendGrid用のURLに書き換えが行われます。
HTMLメールでリンクをボタンにしている場合は特に気になりませんが、プレーンテキストで送信している場合などはURLパラメータにより長くなって見苦しくなってしまいますので、必要でなければ停めてしまいましょう。
左メニューの「Settings」の中の「Tracking」をクリックします。
「Open Tracking」と「Click Tracking」が有効になっているのが分かります。
これを編集から停止にします。
全てDisabledになればOKです。
送られているメールのリンクが、独自ドメインのURLになっているはずです。
まとめ
今回は、SendGridを初めて利用する方に向けてSendGridから送信するまでの流れを書いてみました。
管理画面が英語なので少し分かりにくい部分があるのですが、やることが分かっていれば簡単ですね。
今回は基本的なSendGridの機能だけしか取り上げていませんが、SMS送信などもあるようなので、もう少し詳しい機能もいずれ紹介できたらと思います。
もしSendGridの使い方などで分からない点などありましたら、お気軽にご相談ください。
以上、「Laravel+SendGridでメールを送信するためのSendGrid側の設定方法」でした!
WordPressやWEB技術、集客、ChatGPTなど最新技術に関する情報を毎週お届けする
メールマガジンを発行しています。
不定期でWordPressの脆弱性情報も配信していますので、
WEB担当者やWEBを学んでいる方などにオススメの無料メールマガジンです!
コメント