LXXV. メール関数(Mail)

導入

mail() 関数によりメールを送信できるようになります。

要件

メール関数を使用可能にするには、PHP のコンパイル時点でシステム上の sendmail バイナリにアクセスできなければなりません。 postfix や qmail など他のメールプログラムを使用してる場合には、 それらのソフトに付随する適当な sendmail ラッパを使用するように 気をつけてください。 PHP は sendmail を探す際にまず PATH を見ます。次に /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib の順で探します。PATH を通して sendmail を使用可能な 状態にしておくことが強く推奨されます。 また、コンパイルされた PHP が sendmail バイナリにアクセスできる権限を 持っていなければなりません。

インストール手順

PHP コアに含まれるため、 追加のインストール無しで使用できます。

実行時設定

php.ini の設定により動作が変化します。

表 1. Mail 設定オプション

名前デフォルト変更の可否変更履歴
SMTP"localhost"PHP_INI_ALL 
smtp_port"25"PHP_INI_ALL 
sendmail_fromNULLPHP_INI_ALL 
sendmail_pathNULLPHP_INI_SYSTEM 
PHP_INI_* 定数の詳細および定義については 付録G を参照してください。

以下に設定ディレクティブに関する 簡単な説明を示します。

SMTP string

Windows 環境のみで使用されます: mail() 関数でメールを送信する際に使用する SMTP サーバのホスト名または IP アドレス。

smtp_port int

Windows 環境のみで使用されます: SMTP 設定で指定したサーバに接続するポート番号で、 デフォルトは 25 です。PHP 4.3.0 以降でのみ利用可能です。

sendmail_from string

Windows 環境で、PHP から送信されるメールにおいて "From:" に使用するメールアドレスを指定します。 このディレクティブは、"Return-Path:" ヘッダも設定します。

sendmail_path string

sendmail プログラムを探すパスを指定します。 通常、/usr/sbin/sendmail または /usr/lib/sendmail です。 configure は、このパスを探し、 デフォルト値として設定しますが、 これで上手くいかない場合にはこのオプションで設定する必要があります。

sendmail を使用していないシステムは、 使用するメールシステムが提供する sendmail のラッパ/代替品を、 必要に応じてこのディレクティブに設定する必要があります。例えば、Qmail ユーザは、通常 /var/qmail/bin/sendmail または /var/qmail/bin/qmail-inject に設定します。

qmail-inject では、 メールを正しく処理するためのオプション設定は不要です。

このディレクティブは Windows 環境でも動作します。指定された場合は smtp および smtp_portsendmail_from の値は無視され、 ここで指定したコマンドが実行されます。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

目次
ezmlm_hash -- EZMLM で必要なハッシュ値を計算する
mail -- メールを送信する