ここまで基礎編・中級編で、SPFやDKIM、DMARCといったメールの正当性を証明する仕組みについて解説してきました。
上級編では、送信プログラム側の改善として「PHPMailer」の導入方法と使い方を紹介します。
1. PHPMailerって何?
PHPMailerは、PHPでメールを送るための有名なライブラリです。
通常のmail()関数では設定や送信方法がシンプルすぎて、迷惑メール判定を回避するための細かい調整がしにくいのですが、PHPMailerなら以下のようなことが簡単にできます。
・SMTP経由での安全な送信(暗号化付き)
・送信元情報(From, Reply-To)の明確な設定
・HTMLメールや添付ファイルの送信
・認証付き送信でSPF/DKIMが正しく機能しやすくなる
2. 導入方法
■Composerを使う場合(推奨)
Composerは、PHPのライブラリを簡単にインストール・更新できるツールです。
レンタルサーバーによっては使えない場合があります。
手順1:サーバーにSSHでログインする
手順2:プロジェクトのフォルダで以下を実行
composer require phpmailer/phpmailer
手順3:完了すると、vendorフォルダが作られ、PHPMailerが使えるようになります。
■Composerが使えない場合
手順1:PHPMailerのGitHubページからZIPをダウンロード
手順2:srcフォルダをPHPのプロジェクト内に置く
手順3:requireで読み込む
require ‘src/PHPMailer.php’;
require ‘src/SMTP.php’;
require ‘src/Exception.php’;
3. サンプルコード(SMTP送信)
以下は、XserverなどのSMTPサーバーを使ってメールを送信する例です。
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;require 'vendor/autoload.php'; // Composerで導入した場合
$mail = new PHPMailer(true);
try {
// サーバー設定
$mail->isSMTP();
$mail->Host = 'svXX.xserver.jp'; // SMTPサーバー
$mail->SMTPAuth = true;
$mail->Username = 'info@yourdomain.jp'; // メールアカウント
$mail->Password = 'メールアカウントのパスワード';
$mail->SMTPSecure = 'ssl'; // TLSやsslを指定
$mail->Port = 465;// 送信者・宛先
$mail->setFrom('info@yourdomain.jp', 'あなたの名前');
$mail->addAddress('to@example.com', '受信者の名前');
$mail->addReplyTo('info@yourdomain.jp', '問い合わせ担当');// コンテンツ
$mail->isHTML(true);
$mail->Subject = 'テストメール';
$mail->Body = 'これはPHPMailerで送信されたテストメールです。';
$mail->AltBody = 'これはテキスト形式のテストメールです。';$mail->send();
echo 'メールが送信されました';
} catch (Exception $e) {
echo "メール送信に失敗しました: {$mail->ErrorInfo}";
}
4. 迷惑メール判定を避けるポイント
PHPMailerを導入しても、SPF/DKIM/DMARCの設定が正しくなければ効果は半減します。
上級編としては、次のような送信設定を意識しましょう。
・SMTP認証を使う(送信元ドメインの正当性が上がる)
・setFrom()で送信元をドメイン一致させる
・addReplyTo()で返信先を明確にする
・HTMLメールとテキストメールの両方を送る(マルチパート)
【まとめ】
PHPMailerは「迷惑メール回避」のための直接的な魔法ではありませんが、送信の品質をコントロールできるため、サーバー設定と組み合わせればメールの到達率が大きく改善します。
次のステップとしては、送信後にDMARCレポートで到達状況を確認しながら、コードとDNS設定を少しずつ改善していくことがおすすめです。