PHP mail() 函数
示例
发送一封简单的电子邮件
<?php
// 消息
$msg = "第一行文本\n第二行文本";
// 如果行长于 70 个字符,请使用 wordwrap()
$msg = wordwrap($msg,70);
// 发送电子邮件
mail("someone@example.com","My subject",$msg);
?>
定义和用法
mail() 函数允许您直接从脚本发送电子邮件。
语法
mail(to,subject,message,headers,parameters);
参数值
参数 | 描述 |
---|---|
to | 必需。指定电子邮件的接收者。 |
主题 | 必需。指定电子邮件的主题。注意:此参数不能包含任何换行符。 |
message | 必需。定义要发送的消息。每行应以 LF (\n) 分隔。行不应超过 70 个字符。 Windows 注意:如果消息中的某一行开头是一个句点,则可能会被删除。要解决此问题,请将句点替换为双句点。 |
headers | 可选。指定附加标头,如 From、Cc 和 Bcc。附加标头应以 CRLF (\r\n) 分隔。 注意:发送电子邮件时,必须包含 From 标头。这可以在此参数中设置,也可以在 php.ini 文件中设置。 |
parameters | 可选。为 sendmail 程序(在 sendmail_path 配置设置中定义)指定一个附加参数。(例如,在使用带 -f sendmail 选项的 sendmail 时,这可用于设置信封发件人地址)。 |
技术详情
返回值 | 返回 *address* 参数的哈希值,失败则返回 FALSE。注意:请记住,即使电子邮件已被接受进行投递,也**不**表示电子邮件已成功发送和接收! |
---|---|
PHP 版本 | 4+ |
PHP 更新日志 | PHP 7.2:headers 参数也接受数组。 PHP 5.4:为 *headers* 参数添加了标头注入保护。 PHP 4.2.3:(仅限 Windows) 支持所有自定义标头(如 From、Cc、Bcc 和 Date),并且不区分大小写。 PHP 4.2.3:*parameters* 参数在安全模式下被禁用。 PHP 4.0.5:添加了 *parameters* 参数。 |
更多示例
发送带有额外标头的电子邮件
<?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);
?>
发送 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>John</td>
<td>Doe</td>
</tr>
</table>
</body>
</html>
";
// 发送 HTML 电子邮件时始终设置 content-type
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// 更多标头
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>
❮ 完整的 PHP Mail 参考