#SendGridのアカウント登録
###アカウント登録時の注意点
SendGridのアカウント登録の窓口はいくつかありますが、今回は公式日本サイトから登録を行います。
ほかの窓口としてはsendgrid.comやMicrosoft Azureから登録ができるようです。
※sendgrid.comからアカウント登録を行うと、公式日本サイトからはログインができないようです。
おそらく直接sendgrid.comに登録するものと、日本向けの正規販売代理店(KKE)を介して登録する違いによるものと思われます。
###アカウント登録
公式日本サイトにアクセスし、メールアドレスを入力すると仮登録完了メールが届きます。
「ユーザー情報を登録」ボタンを押すと入力画面が表示されるので、必要事項を入力しましょう。
入力した内容は審査をされるので、適当な内容は書かないようにしてください。
ユーザー情報の登録が完了すると、本登録完了のメールが届きますが、この時点ではまだSendGridにログインはできません。
半日ほど待つとログイン情報が記載されたメールが届きます。
ログイン画面>マイページ>SendGridダッシュボードへ をクリックし、ダッシュボード画面が表示されればアカウント登録は成功です。
#送信元メールアドレス登録
SendGridからメールを送信するには送信元メールアドレスを登録する必要があります。
サイドメニューの Marketing>Senders>Create New Sender をクリックして送信元情報を入力して Save をクリックすると、登録内容が一覧として表示されます。
この時点ではVerified が×になっているため、まだ設定が完了していません。
From Email Addressに入力したメールアドレスにメールが届いているはずなので、メールの Verify Sender Identityをクリックして送信元メールアドレスの確認を行ってください。
画面を更新してVerifiedに✓がついていれば送信元メールアドレスの設定は完了です。
#APIキー作成
続いてAPIキーの作成を行います。
Settings>API Keys>Create API Key をクリックしてAPIキー作成画面を開いてください。
APIキー名とアクセス権限を設定(今回はFull Access)し、Create&Viewをクリックすると、APIキーの確認画面が表示されます。
APIキーは一度しか表示されないため、忘れないように必ずコピーして保管しておきましょう。
Doneをクリックすると一覧に作成したAPIキーが表示されます。
これでAPIキーの作成は完了です。
#Laravelの設定
###SendGridライブラリインストール
Laravelプロジェクト直下で以下のコマンドを実行します。
composer require "sendgrid/sendgrid"
###.envファイル設定
.envファイルの環境変数に作成したAPIキーを追加します
SENDGRID_API_KEY={YOUR API KEY}
###メール送信処理
メールを送信するための処理を記述します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use SendGrid;
class MailingController extends Controller
{
public function sendMail()
{
$email = new \SendGrid\Mail\Mail();
$email->setFrom('送信元アドレス');
$email->setSubject("テスト送信");
$email->addTo('送信先アドレス');
$apiKey = getenv('SENDGRID_API_KEY');
$sendGrid = new \SendGrid($apiKey);
$email->addContent(
"text/plain",
"test mail"
);
$response = $sendGrid->send($email);
if ($response->statusCode() == 202) {
return back()->with(['success' => "E-mails successfully sent out!!"]);
}
return back()->withErrors(json_decode($response->body())->errors);
}
}
web.php にパスを設定
Route::get('/Mailing','MailingController@sendMail')->name('Mailing');
ブラウザからlocalhost/Mailingを実行すると、addToに設定したアドレス宛にメールが届きました。