Digital Acorn

プログラムやサーバーの設定など、技術的な記事を載せております。

bash on ubuntu on windows PHP プログラミング

【BoW】PHPから送信するメールをテキストに保存する

投稿日:2017-08-30 更新日:

テスト環境で使っていると、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は便利ですね。

-bash on ubuntu on windows, PHP, プログラミング


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

【WSL】Windows 10でsshのポートフォワードをつなぎっぱなしにする

最近社内にメールを送信すると、なぜかスパムと認識されてしまいます。 ヘッダーを見ると、どうもSMTPの接続元がOCNだとスパムだと判断されるみたいです。 確かにブラックリストに載っています。そりゃしょ …

PHPからsyslogを書く

忘備録です。 PHPでシステム回りを作っているんですが、syslogに出力出来たらなー、と思っていました。 調べたら簡単♪ function logger($mes) { exec("/bi …

Visual Studio CodeでBoW上のPHPをデバッグ

前書き Sublime Text 3を愛用しているんですが、だんだん他のエディタが追いついて、追い抜いて来たような感じがします。 Sublime Textは更新が止まってしまっているので、まあしょうが …

PHP Toolkit のSoapClientが接続できない

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。 (そういう時は前もって連絡ください(怒)) その際、エラーが出るというのです。 ログを見ると、 SoapClientの_ …

【HTML5】 FormDataオブジェクトがログに出力されない(出力方法追記)

どうも仕様みたいですね。 どうやっても、無理でした。 隠ぺいされたオブジェクトっていうのも気持ち悪いですね。 それをajaxで送る、っていうのも気持ち悪い。 var fd = new FormData …

広告