mail

(PHP 3, PHP 4 )

mail -- メールの送信

説明

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

mail()messageで 指定されたメッセージをtoで指定された 受信者に自動的にメールします。toの中の 各アドレスをカンマで区切ることにより、複数の受信者を指定できます。

例 1メールを送信する


mail ("rasmus@lerdorf.on.ca", "My Subject", "Line 1\nLine 2\nLine 3");
      

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

5番目のパラメータを指定した場合、PHPはこのデータをメーラをコール 際に追加します。この機能は、sendmailを使用する際に正しい Return-Pathヘッダを設定したい場合に便利です。

例 2追加ヘッダを指定してメールを送信


mail("nobody@aol.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion());
      
5番目のパラメータを指定するとこれが使用するメーラのコマンドライン パラメータに追加されます。以下の例では、sendmailに正しい Return-Pathを設定しています。通常、sendmailは-fパラメータを使用し た場合にX-Authentication-Warningヘッダを追加します。これは、通常、 Webサーバのユーザが認証済のユーザのメンバではないことが多いからで す。この警告をなくすには、Webサーバのユーザを使用するsendmailの設 定ファイルの認証済のユーザ(trusted users)に追加する必要があります。

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

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


mail("nobody@aol.com", "the subject", $message,
     "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVERNAME");
      
複雑なemailメッセージを作成する際に単純な文字列結合を使用すること も可能です。

例 4複雑なemailを送信する


/* recipients */
$recipient .= "Mary <mary@u.college.edu>" . ", " ; //コンマで区切る
$recipient .= "Kelly <kelly@u.college.edu> . ", ";
$recipient .= "ronabop@php.net";

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

/* メッセージ */
$message .= "The following email includes a formatted ASCII table\n";
$message .= "Day \t\tMonth \t\tYear\n";
$message .= "3rd \t\tAug \t\t1970\n";
$message .= "17rd\t\tAug \t\t1973\n";

/* 保存されたsigunatureを追加できます */ 
$message .= "--\r\n"; // signatureの区切り
$message .= "Birthday reminder copylefted by public domain";

/* エラー用、From、cc、bcc、等の追加ヘッダ */

$headers .= "From: Birthday Reminder <birthday@php.net>\n";
$headers .= "X-Sender: <birthday@php.net>\n"; 
$headers .= "X-Mailer: PHP\n"; // メイラー
$headers .= "X-Priority: 1\n"; // 緊急メッセージ!
$headers .= "Return-Path: <birthday@php.net>\n";  // エラー時の返信先

/* HTMLメールを送信したい場合、次の行のコメントを外して下さい */
// $headers .= "Content-Type: text/html; charset=iso-8859-1\n" // MIME型

$headers .= "cc:birthdayarchive@php.net\n"; // CCの宛先
$headers .= "bcc:birthdaycheck@php.net, birthdaygifts@php.net\n"; // BCCの宛先

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

注意 追加したパラメータあるいはsubjectパラメータの後に改行(または他の 空白文字)を付加しないようにして下さい。この場合、おかしな結果に なってしまう可能性があります。