PHP:送信されるメールをすべてテキストファイル出力する

メール送信がからむ PHP系システムで、テストのため、一時的にテキストファイルへ送信内容を記録したいことがあります。メール受付スクリプトと php.iniの「sendmail_path」の設定を行うことで実現可能です。(2013/11/17作成)

テキストファイル ErnaDaalman / Pixabay

■メール受付スクリプト

$ pwd
/var/tmp

$ vi mail_output_text.sh
#!/bin/sh
# mail_output_text.sh
#
# php.ini
# ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
# sendmail_path = /var/tmp/mail_output_text.sh

filename=/tmp/mail_test.txt

echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" >> ${filename}
echo $* >> ${filename}
cat >> ${filename}

$ chmod +x mail_output_text.sh

■php.iniセッティング

$ sudo vi /etc/php.ini
# ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /var/tmp/mail_output_text.sh

※phpから配信されるメールは以降すべて「/tmp/mail_test.txt」(JIS形式)で出力されることになります。

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。