sendmail実行時のエラーチェックについて
鈴木さん (2015-10-06 17:13:52) jex.que.jp/aaa/example.html
mailformproを使わせていただいております。
大変優れた機能を持ち、しかも無料ということで大変感謝しております。
1点だけ要望させていただきます。
現在sendmailの呼び出し時や、終了時にsendmailの実行状態のエラーチェックが行われていないようです。
sendmailの実行エラーというのもそれほど多くは無いのですが、他のCGI等の影響でプロセスの同時実行数制限にひっかかってしまった場合など、sendmailの実行や、実行中の処理に失敗することが稀にあるかと思われます(一般的に)。
その際に現在のコードですとエラーにならず、表面上は送信が完了したことになってしまいちょっと宜しくないのかなあぁ、と思っております。
例えばcore.cgi中のsendmailの実行のところで
open(MAIL,"| ${sendmail}") || die("sendmail: $!¥n");
や、closeの箇所で
close(MAIL) || die("close: $!¥n");
としていただくと、カッコ悪いperlのエラー画面で送信に失敗したことだけは分かるので送信者の方に別のアプローチをしていただける可能性があります。
本来であればきちんとしたエラー表示をしていただくと良いとは思いますが、とりあえずは一つの例ということで。
今後のバージョンアップの際にご考慮いただけると幸いです。
Re:sendmail実行時のエラーチェックについて
和田 (2015-10-07 01:09:46) www.synck.com
了解です!ぜひ次期アップデート時の参考にさせていただきたいと思います!
Re:sendmail実行時のエラーチェックについて
鈴木さん (2015-10-08 12:56:44) jex.que.jp/aaa/example.html
ご回答ありがとうございます。
エラーチェックではないのですが、同じくcore.cgiの中でBoundaryの出力をしている箇所があるのですが、バウンダリーはヘッダではないのでこの前に空行を入れていただくのが正しいのではないかと思われます。
$str .= "MIME-Version: 1.0¥n";
$str .= "¥n"; ← 追加
$str .= "--$config{’Boundary’}¥n";
postfixなどのMTAで自動的に空行が入れられる場合もあるようですが。。
こちらもあわせてご検討いただければ幸いです。
Re:sendmail実行時のエラーチェックについて
和田 (2015-10-13 07:18:41) www.synck.com
ご指摘ありがとうございます!そちらは既に修正しているのですがまだ公開していないという体たらくでして・・・。次期アップデート時に修正されていると思いますので、公開までしばしお時間をいただけると・・・。