[PHP-users 16875]Re: PHP4のIMAPによるメール送信について

Y.Watanabe yuw @ msj.biglobe.ne.jp
2003年 7月 21日 (月) 18:41:30 JST


渡辺です。

Naomasa Numajiri wrote on 2003/07/21 12:25
with Subject: [PHP-users 16873] Re: PHP4のIMAPによるメール送信について

> * メールの送信(SMTPサーバー)
> * メールの受信(POP/IMAPサーバー)
> は別々のものです。
> # のはずなのですが、imap_mail()という関数(これって送信処理?)がある
> # 辺りが僕の言っていることと食い違っています。。
> 
> で、メール送信に関してはメール送信関数のパラメータとして、あるいは
> php.iniの設定として、SMTPサーバーを選択できるのではないかと思います。

php.ini などでSMTPサーバーを設定して、
mail関数等がそのSMTPサーバを利用するように仕向けるというのは、
たしかWin32環境だけでのみの話だったかと・・・。

UNIX環境でのmail関数などはWebサーバに
同居させたsendmailやpostfix(のsendmailラッパ)などの
SMTPサーバが必要になります。

ず〜〜いぶん前に自分もこのMLで誰かに聞いたような気がするのですが、
phpはWebサーバとともに動くものです。で、Webサーバのプロセスは
一般にはリクエストに対してレスポンスを返すとすぐ終了してしまいます。
ということは、場合によっては時間のかかりがちなSMTP通信を
phpスクリプトの中で行うと、SMTP通信中にWEBサーバーのプロセスが
終了してしまう可能性があります。だから、phpのmail関数は、
メールサーバとSMTP通信するんじゃなくて、
sendmail等をコマンドとして直接起動している。ということのようです。
(なんでWin32はSMTPできるようになってるんだろねという話は・・?^^;)

まあそれじゃやっぱり不都合なこともあるよねってことで、

Net_SMTP
http://pear.php.net/package-info.php?package=Net_SMTP
Net_POP3
http://pear.php.net/package-info.php?package=Net_POP3
Net_IMAP
http://pear.php.net/package-info.php?package=Net_IMAP

なんていうのもあるわけで。

でも、
あーだこうだとスクリプトを改造するよりも、
Webサーバにsendmailなりpostfixなりを入れて、
それらが受け取ったメールは全て正規のメールサーバに中継させるように
設定してしまう、というのが早道じゃないかというのも一理あり、
です。




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