デフォルトでは、PHP の関数はLinux 上のプログラムにmail()
メールを配信します。sendmail
sendmail が機能するには、MTA が適切に構成され、機能している必要があります。たとえば、postfix は構成が比較的簡単な MTA です。
MTA を構成する場合、インターネット上のメール サーバーとしてメールを直接送信するか、メールを別のサーバーに中継するように構成できます。
メールを直接配信するように独自の MTA を設定するのは、気楽な人向けではありません。電子メールの送信は複雑になり、gmail や yahoo などの主要なメール サーバーでメールを受信できるようにするには、多くの作業が必要です。
ISP が送信メール サーバーを提供し、メールを中継してくれる場合は、代わりにすべてのメールをそのサーバー経由で中継するように postfix を設定して、設定の手間を省くことができます。postfix を使用する場合は、postfix 構成の null クライアントでの Postfixの例のように設定するだけです。
メール サーバーをどのように構成するかに関係なく、主に覚えておくべきことは、送信ネットワークで受信メールをリレーするように設定しないことです (つまり、オープン リレーとして設定します)。null メーラーの設定例では、行inet_interfaces = loopback-only
がこれを実現しています。
postfix などを MTA として設定する代わりに、PHP 独自のビルトイン SMTP サポートを使用することもできます。これは、基本的に、メールをリレーに転送するだけの MTA として PHP 自体を使用していることを意味します。
postfix のような専用の MTA を使用する利点は、信頼性です。外部メールリレーへの到達に一時的な問題がある場合、Postfix は電子メールをキューに入れることができます。また、メールがキューに入れられるとすぐに戻るので、PHP メール関数はより高速に実行され、メールが外部メール リレーに配信されるまで待つ必要がなくなります。