テスト環境で使っていると、PHPのメール送信をテストしたい時があります。
かといって、実際に送信されてしまうと面倒です。
xamppにはmailtodiskというのがあり、メールをディスクに保存してくれるので便利でした。
Bash on Ubuntu on Windowsにはそれがありません。
無ければ作ればいい!ってことで、PHPで作ってみました。
#!/usr/bin/php
<?php
$output = '';
for ($i = 1; $i < $argc; $i++) {
$output .= "[{$i}] = ".$argv[$i]."\n";
}
$fp = fopen('php://stdin','r');
while ($line = fgets($fp)) {
$output .= mb_convert_encoding($line, 'UTF-8');
}
$output .= "EOF----------------------------------------------------\n\n";
file_put_contents('/tmp/sendmail.log', $output, FILE_APPEND);
これを/usr/sbin/sendmailに保存して、chmod 755を付けてやります。
そうすると、/tmp/sendmail.logに送信したメールが入るようになります。
文字コードは変換していないので、iconvなんかで変換してやる必要があります。
最初の数行には、PHPがsendmailに付けたパラメーターが入ります。
BoWは便利ですね。