PHPのメール送信ログの記録方法を完全解説!初心者でも安心して理解できる
生徒
「PHPでメールを送ったあと、本当に送れたか確認する方法はありますか?」
先生
「あります。メール送信の結果を“ログ”として記録すると確認できます。」
生徒
「ログって何ですか?難しそうです…」
先生
「大丈夫です。日記のように、出来事を書き残すだけの仕組みですよ。」
1. PHPのメール送信ログとは?
PHPのメール送信ログとは、PHP(ピーエイチピー)でメールを送信したときに、「いつ」「誰に」「成功したか失敗したか」を文字として記録しておく仕組みです。ログは、日本語でいうと記録帳や作業メモのようなものです。
パソコンを触ったことがない人でも、ノートに日付と出来事を書くイメージをすると分かりやすいです。プログラムでは、このノートの代わりにテキストファイルを使います。
2. なぜメール送信ログを記録するのか
PHPでメールを送信するとき、画面上では何も起こらないことがあります。そのため、本当にメールが送れたのか分からないという不安が出てきます。
メール送信ログを残しておけば、「送信成功」「送信失敗」といった結果を後から確認できます。これは、家を出る前に鍵を閉めたかどうかをメモするのと同じで、安心材料になります。
3. PHPでメールを送信する基本
まずは、PHPでメールを送信する基本形を見てみましょう。PHPではmail関数(メール関数)を使います。関数とは、よく使う処理をまとめた便利な道具です。
<?php
$to = 'test@example.com';
$subject = 'テストメール';
$message = 'これはテストメールです';
$headers = 'From: sample@example.com';
mail($to, $subject, $message, $headers);
?>
このコードは、「誰に」「どんな題名で」「どんな内容を」送るかを書いています。ただし、これだけでは送信できたか分かりません。
4. ファイルにログを書き込む方法
ログを残すには、ファイルに文字を書くという作業を行います。これは、紙にペンで文字を書くのと同じ考え方です。
<?php
$logMessage = "メール送信を実行しました\n";
file_put_contents('mail.log', $logMessage, FILE_APPEND);
?>
file_put_contentsは、「ファイルに内容を書き込む」という意味です。FILE_APPENDは、追記するという指定で、前の内容を消さずに書き足します。
5. メール送信の成功・失敗をログに残す
mail関数は、成功するとtrue(トゥルー)、失敗するとfalse(フォルス)を返します。これは「はい」「いいえ」のようなものです。
<?php
$result = mail($to, $subject, $message, $headers);
if ($result) {
file_put_contents('mail.log', "送信成功\n", FILE_APPEND);
} else {
file_put_contents('mail.log', "送信失敗\n", FILE_APPEND);
}
?>
これで、送信結果がログファイルに残るようになります。
6. 日時を一緒に記録して分かりやすくする
ログには、いつ起きた出来事かを書いておくと、とても見やすくなります。これは日記に日付を書くのと同じです。
<?php
$date = date('Y-m-d H:i:s');
file_put_contents('mail.log', $date . " メール送信\n", FILE_APPEND);
?>
date関数は、現在の日時を取得するための便利な道具です。
7. ログファイルの中身を確認する方法
作成されたmail.logファイルは、メモ帳などで開くことができます。中には、次のような内容が書かれます。
2026-02-09 12:00:00 メール送信
送信成功
このように表示されていれば、PHPのメール送信ログが正しく記録されています。
8. 初心者がつまずきやすい注意点
ログファイルが作成されない場合は、ファイルの保存場所や書き込み権限が原因のことが多いです。これは、ノートを引き出しに入れたまま書こうとしている状態に似ています。
PHPメール送信ログを正しく記録することで、トラブルの原因をすぐに見つけられるようになります。初心者のうちからログを残す習慣をつけることが大切です。