2016-09-30 4 views
2

https://stackoverflow.com/a/3176517/で私が学んだことを使って、私のローカルマシン上のPHPのmail() - コマンドをファイルにルーティングしています。 php.iniから:"tee ..."を使用すると、 "-f" -parameterを使用すると、PHPのsendmail_pathが余分なファイルになります。

sendmail_path ='tee /testmail/mail.txt' 

しかし、私はadditional_parameter[email protected])を追加し、それは現在のフォルダ内のメールの内容に[email protected]という名前のaddtionalのファイルを生成します。

完全な例:

$ cat | php -d sendmail_path='tee /testmail/mail.txt' 
<?php 
mail('[email protected]', 'subject', 'body', '', '[email protected]'); 
?> 
To: [email protected] 
Subject: subject 


body 

最後の5行は/testmail/mail.txtに書き込まれ、新しく[email protected]を作成しています。

-fのパラメータがteeのコマンドに転送されたようです。それを防ぐ方法はありますか?

(エラーでcat結果を使用してPHPはfalseを返します。)

+0

what * else *パラメータが渡されますか? – hobbs

+0

この場合、理想的には無視されます。 –

答えて

0

あなたはシェルスクリプトで、あなたのコマンドをラップすることにより、PHPから渡された任意の追加の引数を無視することができます。

pseudo_sendmail

#!/usr/bin/env bash 
tee /testmail/mail.txt 

PHP設定:

sendmail_path ='/path/to/pseudo_sendmail' 
+0

ちょうど私が欲しかったです。つまり、私は '#!/ usr/bin/env bash tee /testmail/mail.txt cp /testmail/mail.txt/testmail/mail.eml' と同時に「本当の」電子メールを作成することができます。プレビューが簡単になります。 –

関連する問題