PHP 发送电子邮件
在本教程中,您将学习如何使用 PHP mail()
函数直接从脚本发送简单的文本或 HTML 电子邮件。
PHP mail()
函数
发送电子邮件对于 Web 应用程序来说非常常见,例如,当用户在您的网站上创建帐户时发送欢迎电子邮件,向您的注册用户发送新闻通讯,或者通过网站的联系表获取用户反馈或评论等等。
您可以使用 PHP 内置的 mail()
函数从您的 PHP 应用程序中以纯文本形式或格式化的 HTML 动态创建电子邮件消息并将其发送给一个或多个收件人。 该函数的基本语法可以通过以下方式给出:
mail(to, subject, message, headers, parameters)
下表总结了该函数的参数。
参数 | 说明 |
---|---|
Required — The following parameters are required | |
to |
收件人的电子邮件地址。 |
subject |
要发送的电子邮件的主题。 此参数即主题行不能包含任何换行符 (\n )。 |
message |
定义要发送的消息。 每一行都应该用换行符-LF (\n ) 分隔。 行不应超过 70 个字符。 |
Optional — 以下参数是可选的 | |
headers |
这通常用于添加额外的标题,例如"From"、"Cc"、"Bcc"。 额外的标题应该用回车加换行CRLF (\r\n ) 分隔。 |
parameters |
用于传递附加参数。 |
发送纯文本电子邮件
使用 PHP 发送电子邮件的最简单方法是发送文本电子邮件。 在下面的示例中,我们首先声明变量 — 收件人的电子邮件地址、主题行和邮件正文 — 然后我们将这些变量传递给 mail()
函数以发送电子邮件。
示例
Download<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$message = 'Hi Jane, will you marry me?';
$from = 'peterparker@email.com';
// 发送电子邮件
if(mail($to, $subject, $message)){
echo 'Your mail has been sent successfully.';
} else{
echo 'Unable to send email. Please try again.';
}
?>
发送 HTML 格式的电子邮件
当您使用 PHP 发送文本消息时,所有内容都将被视为简单文本。 我们将改进该输出,并将电子邮件转换为 HTML 格式的电子邮件。
要发送 HTML 电子邮件,过程相同。 但是,这一次我们需要提供额外的标题以及 HTML 格式的消息。
示例
Download<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$from = 'peterparker@email.com';
// 要发送 HTML 邮件,必须设置 Content-type 标头
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// 创建邮件头
$headers .= 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" .
'X-Mailer: PHP/' . phpversion();
// 编写一个简单的 HTML 电子邮件
$message = '<html><body>';
$message .= '<h1 style="color:#f40;">Hi Jane!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Will you marry me?</p>';
$message .= '</body></html>';
// 发送电子邮件
if(mail($to, $subject, $message, $headers)){
echo 'Your mail has been sent successfully.';
} else{
echo 'Unable to send email. Please try again.';
}
?>
注意: 但是,PHP mail()
函数是 PHP 核心的一部分,但您需要在您的机器上设置一个邮件服务器才能使其真正工作。
在接下来的两章 (PHP 表单处理 和 PHP 表单验证) 中,您将学习如何使用 PHP 发送邮件功能在您的网站上实现交互式联系表单,以通过电子邮件接收用户的评论和反馈。
Advertisements