[PHP-users 16069]Re: mb_send_mail()がsendmailが停止していても True を返す

Y.Watanabe yuw @ msj.biglobe.ne.jp
2003年 6月 20日 (金) 12:38:36 JST


わたなべです。

おそらく、sendmailの、デーモンとして稼動している場合と
コマンドラインを直接叩いて起動する場合との違いと
それらのPHPとの関連に誤解があるのでしょう・・・(?)

"Takeo Nishida" wrote on 2003/06/20 12:09
with Subject: [PHP-users 16067]mb_send_mail() がsendmailが停止していても 
True を返す

>現在、RedhatLinux9、Apache2.0.45、PHP4.3.1、sendmail8.12.9 の
>組み合わせでサーバを構築しています。

>ここで、PHPによる単純な問い合わせフォームを作り、
>最後のメール送信に mb_send_mail() を使用しました。
>
>このフォームからのメール送信は正常に動作しましたが、
>テストしていて、サーバの sendmail が停止していても
>mb_send_mail() がTrueを返してしまうことが分かりました。
>
>これでは、sendmail停止時にユーザのフォームからの問い合わせを
>送信失敗としてユーザに通知できません。(泣)

「sendmail停止時に」というのはつまり
「sendmailがsmtpデーモンとして常駐している状態を停止させた」
ということなのでしょう。

しかしそんな場合でも、sendmailそのもの、実行形式ファイルそのもの、
つまり/usr/lib/sendmailとかはちゃんと存在するわけで(あたりまえ)
それをコマンドとして直接叩けば、デーモンとして起動していなくても
単発的なコマンドとしてはちゃんと起動しちゃいます。

そしてPHPのメール関数は、sendmailコマンドを直接起動して
メール送信させているだけです。smtpデーモンと通信して
送信を依頼しているわけではないはずです。(僕の理解が確かなら^^;)
http://jp.php.net/manual/ja/ref.mail.php

ということは、

>テストしていて、サーバの sendmail が停止していても
>mb_send_mail() がTrueを返してしまうことが分かりました。

というのも道理です。

じゃあ、

>・mb_send_mail() がsendmail停止時にFalseを返すのに必要な設定があるかどうか。
>・メールの送信失敗時にその失敗を検出する方法。

と言われると僕も?です。^^;)

#前に似たような話題がこのMLで
#あったような・・・・気がするだけかな?^^;;)


#Win32なシステムだとまたちょっと話が違ってくる・・・ような気がする



PHP-users メーリングリストの案内