かぁくん本紀自作CMS・自作サーバーにて運用中
PC・サーバ >

PHPのメール送信デバッグに便利なスクリプトを公開しました

公開日時: 2025-05-02 20:33:08更新日時: 2025-05-02 20:33:08本日(2025/5/2)、Midari Createにて、PHPのmail関数やmb_send_mail関数で送信されるメールをローカルに保存したり別のサーバから送信できる軽量Pythonスクリプトを公開しました。

メールの送信とローカルへのメール記録はいずれか一方のみを有効化することもできるため、メール記録のみを有効化して開発環境におけるメール送信のテストに使用することも可能です。

インハウスツールとする前提で開発したため正式名称は決まっていませんが、本稿では「メール送信・ログスクリプト」と呼称します。

背景

PHPのmail関数は、Postfixなどの別アプリケーションを呼び出してメールを送信させるという形で動作するよう設計されており、単体で外部のSMTPサーバに接続してメールを送信することはできず、webサーバとメールサーバを個別のマシンで動作させている環境でPHPからmail関数でメールを送信できるようにするためには煩雑な設定が必要でした。

また、開発環境においては、mail関数の動作を実際のメールの送信ではなくローカルへの擬似的な送信ログ保存で代替したいという需要が存在していましたが、PHPからPostfixなどの別アプリケーションに渡されるメールデータは多くの場合BASE64でエンコードされており、Postfixの代わりにteeコマンドなどで受信する場合では、デバッグ時に毎回デコード作業が必要でした。
これに対して、XAMPPではPHPからメールデータを受け取って平文テキストとしてローカルに保存するツールが提供されていますが、同ツールはWindows環境専用であり、GNU/Linuxにでは使用できないという問題がありました。

機能

メール送信・ログスクリプトは、上記の課題を解決すべく、以下の機能を搭載します。
  • Postfixなどのアプリケーションの代わりにPHPからメールデータを受け取り、外部のSMTPサーバー経由でメールを送信すると同時に、メールの本文とヘッダーを平文テキストとしてローカルに記録する
  • メール送信とローカルへの保存は個別に無効化することができるため、メール送信のみを無効化して開発環境でメール送信動作のデバッグに使用できる
  • Pythonの標準ライブラリのみで動作し、追加のライブラリを必要としない

ライセンスとダウンロード

メール送信・ログスクリプトは、これまでにMidari Createにて公開してきた各種ソフトウェアと同様、無権利創作宣言の条件で著作権放棄されています。

ライブラリ本体のダウンロードはMidari Createの詳細情報ページからご利用いただけます。
この記事のタグ:
send_and_log_mails

この記事へのコメント