Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

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に 改行文字を含まないようにして下さい。さもないと、正常に動作しない 可能性があります。