PHP mail() 関数

定義と用法

mail() 関数は、スクリプトから直接電子メールを送信することができます。

メールの投递が成功した場合、true を返し、それ以外の場合は false を返します。

文法

mail(to,subject,message,headers,parameters)
パラメータ 説明
to 必須。メールの受信者を指定します。
subject 必須。メールの件名を指定します。このパラメータには改行文字を含めることができません。
message 必須。送信するメッセージを指定します。
headers 必須。追加のヘッダーを指定します。例えば From、Cc、Bcc など。
parameters 必須。sendmail プログラムの追加パラメータを指定します。

説明

中で message パラメータで指定されたメッセージでは、行間は LF(\n)で区切らなければなりません。各行は 70 文字を超えない必要があります。

(Windows 上)PHP が直接 SMTP サーバーに接続する場合、行の先頭に句点が見つかった場合、それが削除されます。この問題を避けるために、単一の句点を二重句点に置き換えてください。

<?php
$text = str_replace("\n.", "\n..", $text);
?>

ヒントと注記

注記:メールの投递が承認されたということは、メールが計画された目的地に到達したことを意味するわけではありません。

例 1

簡単なメールを送信する:

<?php
$txt = "First line of text\nSecond line of text";
// 一行が 70 文字を超える場合、wordwrap()を使用してください。
$txt = wordwrap($txt,70);
// メールを送信
mail("somebody@example.com","My subject",$txt);
?>

例 2

メールに追加のヘッダーを含めて送信する:

<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>

例 3

HTML メールを送信する例:

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";
$message = "
<html>
<head>
<title>HTML email</title>
</head>
<body>
<p>This email contains HTML Tags!</p>
<table>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>
<tr>
<td>Bill</td>
<td>Gates</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: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>