[PHP-users 2298] Re: mail関数の戻り値

Yasuo Ohgaki php-users@php.gr.jp
Thu, 27 Sep 2001 16:00:31 +0900


> 平田です
> On Tue, 25 Sep 2001 19:20:44 +0900
> "Yasuo Ohgaki" <yohgaki@hotmail.com> wrote:
> >
> > シェルスクリプトを作って“sendmail -t -i”でメールを送ってもエラー
が
> > 帰ってくると思います。
> >
>
> -send_mail.sh--------------------
> #!/bin/sh
> /usr/bin/cat send_mes | /usr/lib/sendmail -i -t
> echo $?
> ---------------------------------
>
> -send_mes-----------------------
> To:hogehoge
> test
> ---------------------------------
>
> というシェルスクリプトを作って
> 実行してみましたが、
> 戻り値は0つまりtrueでした。

sendmailがfalseを返してきているのではと思ったのですが違うようですね。
私のMTA(qmail-1.03)はメールアドレスが正しくても、間違っていてもメール
はとりあえずMTAに渡せたということでTUREが返ってきます。意図的にパイプ
が壊れるようにしたり、/bin/falseをsendmail_pathに指定するとFALSEが返っ
てきます。

<?
	if( mb_send_mail("hogehoge", "テストmail", "テスト")){
		echo "True";
	}else{
		echo "False";
	}
?>

私の環境(Linux 2.4.4/glibc-2.2.2/Apache 1.3.20/PHP-4.0.7RC CVS版)では
投稿された上記のコードと同様のコードでTRUEとFALSEを正しく返します。
環境が違いすぎるので、他のSolaris for Intelユーザーの方、フォローお願
いします。

===== FROM ORIGINAL MSG =====
環境
OS:solaris7(for Intel)
PHP:PHP4.0.6+php-4.0.6-memlimit.diff.gz+php4_mbregex-1.2.1.tar.gz
php.iniの設定
	;sendmail_path =
設定ではコメントにしていますが、送信はできているのでconfigureの段階で
設定できていると
思われます。

sendmail:Sendmail 8.9.3+Sun/3.7Wpl2

sendmailはサーバ環境の都合上、外部のサーバには送れないようにしていま
す。(DNS参照を行わない)
===== END =====

# ext/standard/mail.cのphp_mail()に処理が書かれています。
# ここのpcloseの戻り値(ret)を調べて見てはどうでしょうか?

--
Ohgaki, Yasuo (大垣 靖男) 
Mail: yohgaki@dd.iij4u.or.jp