一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • 問合せフォームの迷惑メール対策【上級編】

ここまで基礎編・中級編で、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設定を少しずつ改善していくことがおすすめです。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア