PHP マニュアル
前のページ |  | 次のページ

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

前のページ | ホーム | 次のページ
ezmlm_hash | 上に戻る | mailparse関数