轻松上手,快乐学习!

PHP 教程

PHP 教程PHP 简介PHP 下载安装PHP 语法PHP 注释PHP 变量PHP Echo / PrintPHP 数据类型PHP 字符串PHP 数值PHP MathPHP 常量PHP 运算符PHP If...ElsePHP SwitchPHP 循环While 循环Do While 循环For 循环Foreach 循环Break/ContinuePHP 函数PHP 数组索引数组关联数组多维数组数组排序PHP 全局变量$GLOBALS$_SERVER$_REQUEST$_POST$_GETPHP 正则表达式PHP 表单处理PHP 表单验证PHP 表单验证必填字段PHP 表单验证URL/E-mailPHP 表单验证实例PHP 日期和时间PHP IncludePHP 文件处理PHP 文件打开/读取PHP 文件创建/写入PHP 文件上传PHP CookiesPHP SessionsPHP FiltersPHP Filters AdvancedPHP 回调函数PHP JSONPHP 异常处理PHP 什么是 OOPPHP 类和对象PHP 构造函数PHP 析构函数PHP 访问修饰符PHP 继承PHP 类常量PHP 抽象类PHP 接口PHP 特征PHP 静态方法PHP 静态属性PHP 命名空间PHP 可迭代对象MySQL DatabaseMySQL ConnectMySQL Create DBMySQL Create TableMySQL Insert DataMySQL Get Last IDMySQL Insert MultipleMySQL PreparedMySQL Select DataMySQL WhereMySQL Order ByMySQL Delete DataMySQL Update DataMySQL Limit DataPHP XML ParsersPHP SimpleXML ParserPHP SimpleXML - GetPHP XML ExpatPHP XML DOMAJAX IntroAJAX PHPAJAX DatabaseAJAX XMLAJAX Live SearchAJAX PollPHP 实例PHP 编译器PHP 测验PHP 练习

PHP 参考手册

PHP 概述PHP ArrayPHP CalendarPHP DatePHP DirectoryPHP ErrorPHP ExceptionPHP FilesystemPHP FilterPHP FTPPHP JSONPHP KeywordsPHP LibxmlPHP MailPHP MathPHP MiscPHP MySQLiPHP NetworkPHP Output ControlPHP RegExPHP SimpleXMLPHP StreamPHP StringPHP Variable HandlingPHP XML ParserPHP ZipPHP Timezones


PHP mail() 函数


实例

发送一封简单的电子邮件:

<?php
// the message
$msg = "First line of text\nSecond line of text";
// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);
// send email
mail("someone@example.com","My subject",$msg);
?>

定义和用法

mail() 函数允许您从脚本中直接发送电子邮件。

如果邮件的投递被成功地接收,则返回 true,否则返回 false。

语法

mail(to,subject,message,headers,parameters);

参数值

参数 描述
to 必需。规定邮件的接收者。
subject 必需。规定邮件的主题。注释: 该参数不能包含任何换行字符。
message 必需。定义要发送的消息。 每行应该用 LF (\n) 分隔。 行不应超过 70 个字符。

Windows 注释:如果在消息的行首发现句号,则它可能会被删除。 要解决此问题,请将句号替换为双点:
<?php
$txt = str_replace("\n.", "\n..", $txt);
?>

headers 可选。指定附加标头,例如 From、Cc 和 Bcc。 附加标头应使用 CRLF (\r\n) 分隔。

注释: 发送电子邮件时,它必须包含 From 标头。 这可以用这个参数或在 php.ini 文件中设置。

parameters 可选。指定 sendmail 程序的附加参数(在 sendmail_path 配置设置中定义的参数)。 (即,当使用带有 -f sendmail 选项的 sendmail 时,这可用于设置信封发件人地址)

说明

message 参数规定的消息中,行之间必须以一个 LF(\n)分隔。每行不能超过 70 个字符。

(Windows 下)当 PHP 直接连接到 SMTP 服务器时,如果在一行开头发现一个句号,则会被删掉。要避免此问题,将单个句号替换成两个句号。


提示和注释

注释:您需要紧记,邮件投递被接受,并不意味着邮件到达了计划的目的地。


技术细节

返回值: 返回 address 参数的哈希值,失败时返回 FALSE。 注释: 请记住,即使电子邮件被接受发送,这并不意味着电子邮件已实际发送和接收!
PHP 版本: 4+
PHP 更新日志: PHP 7.2:headers 参数也接受一个数组
PHP 5.4:为 headers 参数添加了标头注入保护。
PHP 4.3.0:(仅限 Windows)所有自定义标头 (如 From、Cc、Bcc 和 Date)受支持,并且不区分大小写。
PHP 4.2.3:parameter 参数在安全模式下被禁用
PHP 4.0.5 : 添加了参数参数

更多实例

发送带有额外报头的 email:

<?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 email:

<?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>
";
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>