実現したいこと
linux環境でphp8を使っています。
メールで処理情報を送ろうと考えているのですが、メールサーバが別にある為
linuxのs-nailを使うことにしました。
発生している問題・分からないこと
exec や system。popen を使ってみたのですが、execとpopenは無反応で終わり、
system は試行錯誤しても、メールは送れるのですが、本文が無いものが送信されます。
本文が送信できない理由として、exec等がパイプに反応して別の動きをしているかもしれないと思い、パイプの前に「\」を置いてみましたが、効果はありませんでした。
該当のソースコード
php
1$msg="/usr/bin/echo このメールはphpから送信しています | /usr/bin/s-nail -v -s 'Test Mail by php8 Part53' -S v15-compat -S mta=smtp\://test:testpw@mailserver.co.jp:25 -S from=msg@mailserver.co.jp -S smtp-auth=none myaddress@mailserver.co.jp"; 2 3exec($msg,$opt,$return_ver); 4 5system($msg); 6 7popen($msg,"r"); 8
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
exec($msg,$opt,$return_ver);
結果:メールは送信されません。retrun_ver には「array」となります。
system($msg);
結果:メールは送信されません。echo のパイプの前に「\」を置くと、メール送信しますが本文が送信されません。
popen($msg,"r");
結果:メールは送信されません。エラー表示などはありません。
補足
OS:Almalinux9.4
PHP 8.2.19
ご指摘をお願いいたします。
