Windows版【XAMPP-Lite】でメール送信テストをする-[sendmail] [mailtodisk]

ローカルマシンでのウェブサーバー環境はずっとXAMPPを使ってきましたが、Ver.8.2.12以降はXAMPP-Liteに統合・移行(?)されたようです。XAMPP-Liteはインストール版とポータブル版があり、Lite というだけあってあまり使われないものはバッサリとカットして、軽快に動作するもののようです(推測ですが…)。

しかしながら、XAMPP-Liteには自分がメール送信テストに使っていた「mailtodisk」や「sendmail」も潔くカットしてあって、あまり頻繁にテストしてたわけではないのですが、それはそれでいざメール送信テストを…という時には困ってしまいます。

なのでとりあえずはXAMPP-Liteでも「mailtodisk」や「sendmail」を使えるようにしてみました。「mailtodisk」や「sendmail」のプログラムを探すのも大変な(ような気がする)ので、インストール版XAMPP8.2x下にあるそれぞれをフォルダごとXAMPP-Lite下にコピーして実験してみました。

以下の内容はXAMPP8.2xのインストール先が「C:\xampp」、XAMPP-Liteは「C:\xampp-Lite_8_3」としています。異なるフォルダにインストール・展開している場合には、適宜読み替えてください。また、XAMPP-Lite_8_4など、最新バージョンをお使いの場合も適宜読み替えてください。

なお、環境はWindows11、XAMPP-Liteはインストール版でなくポータブル版です。

メールをテキストでフォルダに保存する【mailtodisk】

mailtodiskのコピー

インストールバージョンのXAMPP直下にあるmailtodisk をフォルダごとコピーして、XAMPP-Lite/apps/ にペーストします。

インストール版XAMPP下のmailtodiskをフォルダごとコピーして
XAMPP-Lite/apps下にペーストする

php.ini の設定

xampp_lite_8_3/apps/php/にあるphp.iniをエディタで開き、sendmail_path を mailtodiskに設定します。

php.ini はXAMPPディレクトリの/apps/php 下にあります。(xampp_lite_8_3/apps/php/ )

ルートパスは 【C:/】 ではなく 【${XAMPP_LITE_ROOT}】であることに注意。


; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; https://php.net/sendmail-path

;sendmail_path =
↓
sendmail_path = "${XAMPP_LITE_ROOT}/apps/mailtodisk/mailtodisk.exe"
                   ↑ ルートパスは ${XAMPP_LITE_ROOT} 
 

Apacheの再起動

php.iniの設定が終わったら上書き保存して、apacheを再起動します。

メール送信のテスト

設定とApacheの再起動ができたら、メール送信のテストをしてみます。

以下にテスト用のサンプルプログラムを載せておきますので、これをコピーしてmailtodisk_test.php なのどファイル名で 「/xampp-Lite/www/」下の適当な場所(例えば、「xampp-Lite_8_3/www/mytest/mail_test/mailtodisk_test.php」)に保存し実行してみてください。

ブラウザ上に「メール送信成功」と表示されればその内容がテキスト形式でフォルダに保存されているはずです。

<?php 
//--------------------------------------------------------------------------------
// ローカル開発環境【XAMPP】でメール送信テストをする
// 確認用サンプルプログラム mailtodisk XAMPP-Lite
//--------------------------------------------------------------------------------

// 日本語メール送信の設定
mb_language("ja");
mb_internal_encoding("utf-8");

$Now_Time	= date("Y-m-d H:i");			// 現在の時間 メール本文に挿入します

// 送信先メールアドレス
$to 		= "sample@sample.com";
// タイトル
$subject	= "【XAMPP】でメール送信テスト";
// メール本文
$content	= "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
これはメール送信のテストです
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

いつもご利用ありがとうございます。 
このメールは $Now_Time にテスト送信されました。

―――――――――――――――――――――――――――――― 
 ピーマンブラザーズの日常
 ◇URL:https://dailylife.pman-bros.com/
 ―――――――――――――――――――――――――――――― 
";

// From:送信元のメールアドレス
$mailfrom = "From:webmaster@sample.jp"; 


// メール送信処理
$result = mb_send_mail($to,$subject,$content,$mailfrom);
 
// メール送信処理結果出力
if($result){
	echo "メール送信成功";
}else{
	echo "メール送信失敗";
}

?>

メールの出力先

mailtodisk を使ってメール送信した場合の出力先は 「XAMPP-Liteルートディレクトリ/mailoutput/ (xampp-lite_8_3/mailoutput/)」となり、メール内容がテキスト形式で保存されます。

XAMPP-Liteルートディレクトリ/mailoutput/にテキストファイルとして保存される

To: sample@sample.com
Subject: =?ISO-2022-JP?B?GyRCIVobKEJYQU1QUBskQiFbGyhC?=
 =?ISO-2022-JP?B?GyRCJEclYSE8JWtBdz8uJUYlOSVIGyhC?=
From:webmaster@sample.jp
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
これはメール送信のテストです
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

いつもご利用ありがとうございます。 
このメールは 2025-08-17 12:58 にテスト送信されました。

―――――――――――――――――――――――――――――― 
 ピーマンブラザーズの日常
 ◇URL:https://dailylife.pman-bros.com/
 ―――――――――――――――――――――――――――――― 
 

テキストファイルをエディタで確認する

メールサーバーを利用して実際にメールを送信する【sendmail】

XAMPPはメールサーバーを持っていませんので実際にメール送信する場合には、ご自身で契約しているメールサーバーを利用することになります。設定はご自身のメールアカウント内容を設定ファイルに書き込むだけです。

sendmailのコピー

インストールバージョンのXAMPP直下にあるsemdmail をフォルダごとコピーして、XAMPP-Lite/apps/ にペーストします。

XAMPP-Lite/apps/にペーストする

php.ini の設定


; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; https://php.net/sendmail-path

;sendmail_path =
↓
sendmail_path = "${XAMPP_LITE_ROOT}/apps/sendmail/sendmail.exe"
           ↑ ルートパスは ${XAMPP_LITE_ROOT} 
 

sendmail.iniの設定

続いて「sendmail.ini」の編集をします。「sendmail.ini」は「xampp_liteのルートディレクトリ/apps/sendmal/(xampp-lite_8_3/apps/sendmal/」下にあります。エディタで開いて、以下の個所にご自分のメールサーバーの情報を入力して上書き保存します。情報はメールソフトでメールアカウント設定するものと同じになります。


[sendmail]
smtp_server=sample.com
smtp_port=465
smtp_ssl=auto
auth_username=sample@sample.com
auth_password=PassWord
force_sender=sample@sample.com
 

Apacheの再起動

php.ini、sendmail.iniの設定が終わったら上書き保存して、apacheを再起動します。

メール送信のテスト

設定とApacheの再起動ができたら、メール送信のテストをします。

以下にテスト用のサンプルプログラムを載せておきます。「meiltodisk」の時と違うのは、送信先メールアドレスに実際のメールアドレスを指定している点です。

phpを実行してブラウザ上に送信成功と表示され、指定したメールアドレスにメールが届いていれば成功です。

<?php 
//--------------------------------------------------------------------------------
// ローカル開発環境【XAMPP】でメール送信テストをする(sendmail)
// 確認用サンプルプログラム XAMPP-Lite ポータブル版
//--------------------------------------------------------------------------------

// 日本語メール送信の設定
mb_language("ja");
mb_internal_encoding("utf-8");

$Now_Time	= date("Y-m-d H:i");			// 現在の時間 メール本文に挿入します

// 送信先メールアドレス(実際のメールアドレスを入力します)
$to 		= "sample@sample.com";
// タイトル
$subject	= "【XAMPP-Lite】でメール送信テスト";
// メール本文
$content	= "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
これはメール送信のテストです【sendmail編】XAMPP-Lite 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

いつもご利用ありがとうございます。 
このメールは $Now_Time にテスト送信されました。

―――――――――――――――――――――――――――――― 
 ピーマンブラザーズの日常
 ◇URL:https://dailylife.pman-bros.com/
 ―――――――――――――――――――――――――――――― 
";

// From:送信元のメールアドレス
$mailfrom = "From:webmaster@sample.jp"; 


// メール送信処理
$result = mb_send_mail($to,$subject,$content,$mailfrom);
 
// メール送信処理結果出力
if($result){
	echo "メール送信成功";
}else{
	echo "メール送信失敗";
}

?>
メールが届いていれば成功
EnriqueによるPixabayからの画像

PC-Life,PHP

Posted by pman-bros