[PHP-users 4648] Re: mail 関数と php.ini[mail function] の設定

Youichi Iwakiri php-users@php.gr.jp
Thu, 10 Jan 2002 17:30:04 +0900


いわきりです
#Windowsの中身は知らないですけど

mkanazawa wrote in <017401c199ab$73f1fa60$890aa8c0@KANAZAWA>:
 >以上の環境で、mail 関数のテストを行っているのですが、
 >1. php.ini の設定
 >  [mail function]
 >  ; For Win32 only.
 >  SMTP = 211.15.47.242
 >  ; For Win32 only.
 >  sendmail_from = mkanazawa@core-science.co.jp
 >  ; For Unix only. You may supply arguments as well
 >  ;sendmail_path =
 >この設定で、
 >$mail = mail("mkanazawa@core-science.co.jp","test","test");
 >echo "mail = ".$mail;
 >と mail 関数を実行すると、
 >Warning; Failed to Connect in ...
 >mail =

Warning; Failed to Connect in ...の後は何が出ていますか?
SMTPサーバに接続しようとして失敗しているだけのような気がします。
そのWindows2000 serverからtelnetで211.15.47.242のSMTPポートと
会話が出来ますか?

それが出来ていないようならば、PHPの問題ではなく相手か自分の
通信環境の設定不備でしょう。
ちなみに上記のエラーメッセージはPHPのソースを見る限りPHPが
出したものではありません。
Microsoftのメールライブラリ?
  TSendMail(INI_STR("SMTP"), &tsm_err, headers, subject, to, message)
を呼びエラーの際に
   GetSMErrorText(tsm_err)
で拾ってきたメッセージだと思われます。

 >2. php.ini の設定
 >  [mail function]
 >  ; For Win32 only.
 >  ;SMTP = localhost ( or 211.15.47.242 )
 >  ; For Win32 only.
 >  ;sendmail_from = mkanazawa@core-science.co.jp
 >  ; For Unix only. You may supply arguments as well
 >  sendmail_path = c:\sendmail\sendmail.exe
 >   ( sendmail for NT 3.0.2 をインストール)
 >この設定で、
 >$mail = mail("mkanazawa@core-science.co.jp","test","test");
 >echo "mail = ".$mail;
 >と mail 関数を実行すると、
 >mail = 1
 >となり、mail 関数は正常に動作しますが、メールは送信されてい
 >ません。

ローカルなsendmailが配送指示を受けてメールをqueueに入れたのでしょう。
その時点で送信成功としてリターンコードを返しているだけ

配送されないのは、ローカルなsendmailと211.15.47.242のSMTPサーバ間で
通信が正常に行われていないだけじゃないですか?

 >1. win32 を使用しているのに、前述の 2.のパターンで Connect
 > エラーとならないのなら、SMTP の設定が効果なく、Unix の
 > sendmail_path をみている動作が見受けられる。
 >
 >2. web-server が Apache なので、php.ini は Unix ベースで展開
 > され、実際の動作は win32 で動作している。
 >と考えられますが、如何でしょうか?

たぶん、検討違いだと思います。