[PHP] SendGrid でメールをSMTPで送信する
SendGrid の SMTPサーバを利用して送信する、PHP サンプルです
既存のアプリケーションにてSMTPサーバの設定ができる場合は、ホストを smtp.sendgrid.net、ユーザを apikey、パスワードにAPIキーを指定することで利用可能です。
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
# 事前に composer で PHPMailer をインストール
# composer require phpmailer/phpmailer
require 'vendor/autoload.php';
$host = "smtp.sendgrid.net"; // sendgrid の場合は固定
$user = "apikey"; // sendgrid の場合は固定
$pass = "SG.XXXXXXXXXXXXXX"; // sendgrid の場合はAPIキーを指定
$from = "info@apiless.com";
$from_name = "info";
$to = "hogehoge@apiless.com";
$to_name = "apiless";
$mail = new PHPMailer(true);
try {
// 送信設定
$mail->SMTPDebug = 2; // デバッグ出力を有効にする
$mail->isSMTP(); // SMTPを使用する
$mail->Host = $host; // SMTPサーバー
$mail->SMTPAuth = true; // SMTP認証を有効にする
$mail->Username = $user; // SMTPユーザー名
$mail->Password = $pass; // SMTPパスワード
$mail->SMTPSecure = 'tls'; // 暗号化方式(tlsまたはssl)
$mail->Port = 587; // TCPポート(tlsは587、sslは465)
$mail->CharSet = 'UTF-8'; // 文字セット (UTF-8)
$mail->setFrom($from, $from_name);
$mail->addAddress($to, $from_name);
$mail->isHTML(true); // HTML形式のメールを送信
$mail->Subject = 'テストメールです';
$mail->Body = '<h1>これはSMTP送信のテストメールです</h1><p>HTMLメールを送信しています</p>';
$mail->AltBody = 'これはテストメールです HTMLメールを送信しています';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Error: {$mail->ErrorInfo}";
}