mail

(PHP 3, PHP 4 )

mail -- メールの送信

説明

bool mail ( string to, string subject, string message, string [additional_headers] , string [additional_parameters] )

mail() message で 指定されたメッセージを to で指定された 受信者に自動的にメールします。 to の中の 各アドレスをカンマで区切ることにより、複数の受信者を指定できます。 添付書類付きのemailおよび特別なコンテンツ型のemailはこの関数で送 信可能です。これは、MIMEエンコーディングにより可能です。詳細な 情報については、 Zend article または PEAR Mime Classes を参照下さい。

以下のRFCも有用でしょう。 RFC 1896 , RFC 2045 , RFC 2046 , RFC 2047 , RFC 2048 , RFC 2049

mail() は、メール送信に成功した場合に TRUE 、 それ以外の場合に FALSE を返します。

例 1メールを送信する

mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine
3");


4番目の文字列が指定された場合、その文字列はヘッダの最後に挿入され ます。通常、これはヘッダを追加する際に使用されます。複数のヘッダ を追加する場合は、改行で区切ります。

注意 複数のヘッダを区切る場合、 \r\n を使用する必要 があります。ただし、いくつかのUnix MTA(Mail transfer agents)では 改行文字( \n )だけでも動作します。 Win32システムでは、Cc: ヘッダは大文字小文字を区別し、 Cc: と書く必要があります。Bcc:ヘッダはWin32シ ステムではサポートされていません。

例 2追加ヘッダを付加してメールを送信する

mail("nobody@example.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME\r\n"
    ."Reply-To: webmaster@$SERVER_NAME\r\n"
    ."X-Mailer: PHP/" . phpversion());


パラメータ additional_parameters は、追加の パラメータをメール送信プログラムに渡す際に使用可能です。 メール送信プログラムは、設定オプション sendmail_path により設定されます。例えば、 sendmailを使用する際にエンベロープのsenderアドレスを設定する際に 使用することが可能です。この方法でエンベロープのsenderヘッダを設 定する際、'X-Warning'ヘッダが付加されないようにWebサーバを実行し ているユーザをsendmail設定に追加しておく必要があるかもしれません。

例 3 追加ヘッダ及び追加コマンドラインパラメータを指定してメールを送信

mail("nobody@example.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME");


注意 この5番目のパラメータは、PHP 4.0.5で追加されました。

複雑なemailメッセージを作成する際に簡単な文字列結合を使用すること も可能です。

例 4複雑なemailを送信する

/* 送信先 */
$to  = "Mary  mary@example.com " . ", " ; // カンマで区切る
$to .= "Kelly  kelly@example.com ";

/* 題名 */
$subject = "Birthday Reminders for August";

/* メッセージ */
$message = '
 html 
 head 
  title Birthday Reminders for August /title 
 /head 
 body 
 p Here are the birthdays upcoming in August! /p 
 table 
  tr 
   th Person /th  th Day /th  th Month /th  th Year /th 
  /tr 
  tr 
   td Joe /td  td 3rd /td  td August /td  td 1970 /td 
   td Sally /td  td 17th /td  td August /td  td 1973 /td 
  /tr 
 /table 
 /body 
 /html 
';

/* HTMLメールを送信する場合、Content-typeヘッダを指定可能です。 */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* 追加ヘッダ */
$headers .= "From: Birthday Reminder  birthday@example.com \r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* ここでメールを送信する */
mail($to, $subject, $message, $headers);


注意 to または subject に 改行文字を含まないようにして下さい。さもないと、正常に動作しない 可能性があります。