SendinBlueというサービス名でメールサーバを構築せず無料でメール送信ができるサービスがありましたが、サービス名をBrevoと変えてAPIなど充実するようになりました。
Sendgridのと類似するサービスで、Brevoをつかっていると迷惑メールにされにくくなります。
今回はBrevoをつかって簡単にメールを送信するプログラムをPHPで書きました。
以前SendinBlueをつかってSMTP経由でメールを送信する方法も記載しましたが、もっとシンプルで簡単です。
Brevo
Brevoは、クラウド型のシステムでアカウントを作成するだけで即日メールを送信できます。メールサーバーの構築が不要なメール配信サービスです。相手先へのメールの到達性を高めるための機能が充実しており、信したメールの詳細なログをリアルタイムで確認することができようになっています。無料で使うことが可能です。
Brevoの無料枠
引用:Brevo
Brevoの公式サイトの価格表を見ると1日300通までは無料で使えます。
SendGridの無料枠を合わせれば1日600通程度は送信できるようになります。
小さなWEBサービスではこれら2つの無料枠を組み合わせれば、充分かもしれませんね。
PHPで簡単にBrevo経由でメールを送る
PHPのcURL関数を使うと簡単にメールが送信できます。
cURLをつかったBrevoでメールを送るサンプルコード
PHPのcURL関数を使ったサンプルを書いてみました。
$url変数にAPIのエンドポイントURL、$headers変数に必要なヘッダーを配列として指定します。
$data変数にメールの送信に関するデータを配列として指定します。
curl_init()関数を使用してcURLセッションを初期化し、curl_setopt()関数を使用して各種オプションを設定します。
その後、curl_exec()関数でリクエストを実行し、レスポンスを取得します。
最後に、curl_close()関数でcURLセッションを終了します。
注意: cURLライブラリがPHPに組み込まれていることを確認してください。
function Brevo($email,$subject,$body){
//設定 ここから
$apikey="★APIKEYはBrevoのログインして取得してください";
$mail_from = "★送信元メールアドレス";
$mail_from_name="★送信元名前";
//設定ここまで
$url = "https://api.brevo.com/v3/smtp/email";
$headers = [
"Accept: application/json",
"api-key:".$apikey,
"Content-Type: application/json"
];
$data = [
"sender" => [
"name" => $mail_from_name,
"email" => $mail_from
],
"to" => [["email" => $email]],
"subject" => $subject,
//"htmlContent" => "HTMLメールの場合はここ"
"textContent"=>$body
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
if ($response === false) {
echo "cURLエラー: " . curl_error($ch);
} else {
echo "メールを送信しました。";
}
}