XAMPP でメールをテキストファイルに保存する方法

この記事は最終更新日から 1年以上 が経過しています。

XAMPP で開発する際に、PHP のメール送信関数 mail() もしくは mb_send_mail() を使うと、エラーが出てしまい困ることがあります。 ちゃんとメールサーバーの設定をすれば良いじゃないかと思うかもですが、 メールサーバーを用意するのは面倒ですし、実際にメールが外部に送信されてしまってもそれはそれで困りものです。

mailtodisk とは?

mailtodisk は sendmail のように振舞いながら、実際にはメールを送信せず、メールの内容をテキストファイルで保存してくれるというものです。 これを使うと、PHP のメール送信関数を呼んだ際のエラーが出なくなりますし、メールも外部には送信されませんし、メールの内容も確認することができます。 何より設定が楽です。 ちなみに XAMPP にオプションでインストールすることができる Fake Sendmail("C:\xampp\sendmail\sendmail.exe") とは別物なので注意。

インストール方法

XAMPP で Apache と PHP をインストールしたらデフォルトで入ってます。 なので、XAMPP をインストールしてあるなら、特に何もしなくても入ってると思います。 XAMPP のインストール先が "C:\xampp" の場合は、"C:\xampp\mailtodisk" フォルダーにあります。

mailtodisk.png

設定方法

PHP のメール送信関数 mail() もしくは mb_send_mail() が呼ばれたら、 mailtodisk にメールが送られるように設定します。 php.ini の sendmail_path を mailtodisk.exe に設定し、Apache を再起動します。

php.ini
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"

出力先

mailtodisk は、実行した場所のフォルダーの配下に mailoutput フォルダーを作成し、そのフォルダーの中にファイルを出力します。

Apache の PHP からメールを送信した場合(つまり HTTP / HTTPS から実行した場合)は、出力先のフォルダーは "C:\xampp\mailoutput" になります。

CLI の PHP(例えばバッチファイル)からメールを送信した場合は、実行したそのフォルダー配下の mailoutput フォルダーになります。 保存されてないなと思ったら、別のフォルダーに保存されていたということが良くあるので注意。

mailoutput.png

セキュリティ制限

メールの出力先 mailoutput フォルダーの容量は 300MB までに制限されます。 これは mailtodisk がストレージ(HDD / SSD 等)の容量を使い果たさないようにするためのセキュリティ上の制限となります。 あまり無いとは思いますが、mailoutput フォルダーの容量が 300MB を超えそうなら、不要なファイルを削除して容量を減らしましょう。

ちなみに、実際に 300MB 超えるとどうなるかと言えば、 mailoutput フォルダーに "MAILTODISK_WRITE_RESTRICTION_FOLDER_MORE_THEN_300_MB.txt" というファイルが生成され、 それ以降のメールは mailoutput フォルダーに出力されなくなります。

security_limit.png

参考サイト

関連記事

XAMPP 環境にて作業を行っていたところ、MySQL 接続がやたらと遅く辟易したため、原因を調査してみた。少々ハマってしまったので、ここに書いておきます。誰かの役に立てば幸いだ。ことの発端現象現象としては、PHP から MySQL への接続に1秒以上かかるというもの。ソースコードは下記のたった1行のみ。PHPmysq ...
最近のWebアプリでは、キャッシュやセッションを保存する際に、Redis がよく使われていたりします。しかしながら Redis は XAMPP には含まれていないため、XAMPP から Redis を使うためには XAMPP の環境に少し手を加える必要があります。そこで、その手順を記載しておきます。いまさら感も多々あり ...
XAMPP に ImageMagick をインストールする方法がかなりわかりづらく混乱してしまったので、ここにインストール方法を記載しておきます。自分への備忘録です。ImageMagick は脆弱性が多いようなので注意。PHP から ImageMagick を使用するにはPHP から ImageMagick を使用する ...

記事検索

最新記事

人気記事

RSSフィード

お知らせ

  • 2022/11/24 NEW
    ツールに「QRコードジェネレーター」を追加しました。
    任意のテキストからQRコードを生成します。絵文字なども使用できます。
    長いURLや大量のテキストを入力するのが面倒な場合などにお使いください。
  • 2022/11/23 NEW
    ツールに「くじ引き・抽選ツール」を追加しました。
    任意のリストの中からくじ引き(抽選)を行います。
    順番決めやグループ分け(チーム分け)も行うことができます。
  • 2022/11/01
    ツール「ターミナルAAジェネレーター」「ブラウザコンソールAAジェネレーター」「IDN 変換ツール」「uuencode / uudecode ツール」の公開を終了しました。
  • 2022/10/02
    ツールに「テキスト画像ジェネレーター」を追加しました。
    任意のテキストを画像に変換します。
    AA(アスキーアート)や絵文字などをそのまま画像化することができます。
  • 2022/09/30
    ツール「巨大文字AAジェネレーター」と「点字AAジェネレーター」に、「この結果を画像に変換する」を追加しました。
    生成したAAをテキストから画像に変換できます。