PHP 发送电子邮件
在本教程中,你将学习如何使用 PHP mail()
函数直接从脚本发送简单文本或 HTML 电子邮件。
PHP mail()
函数
发送电子邮件对于 Web 应用程序非常常见,例如,当用户在你的网站上创建帐户时发送欢迎电子邮件,向你的注册用户发送简报,或通过网站的联系表单获取用户反馈或评论等等。
你可以使用 PHP 内置 mail()
函数以纯文本格式或格式化 HTML 从 PHP 应用程序动态创建和发送电子邮件给一个或多个收件人。该函数的基本语法如下:
mail(to, subject, message, headers, parameters)
下表总结了此函数的参数。
参数 | 描述 |
---|---|
必需 | |
to |
收件人的电子邮件地址。 |
subject |
要发送的电子邮件的主题。此参数即主题行不能包含任何换行符(\ n \n )。 |
message |
定义要发送的消息。每行应使用换行符-LF(\n )分隔。行不应超过 70 个字符。 |
可选 | |
headers |
这通常用于添加额外的标题,例如 From ,Cc , Bcc 。附加标题应使用回车符和换行符-CRLF(\r\n )分隔。 |
parameters |
用于传递其他参数。 |
发送纯文本电子邮件
使用 PHP 发送电子邮件的最简单方法是发送文本电子邮件。在下面的示例中,我们首先声明变量 - 收件人的电子邮件地址,主题行和邮件正文 - 然后我们将这些变量传递给 mail()
函数以发送电子邮件。
<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$message = 'Hi Jane, will you marry me?';
$from = 'peterparker@email.com';
// Sending email
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 格式的消息。
<?php
$to = 'maryjane@email.com';
$subject = 'Marriage Proposal';
$from = 'peterparker@email.com';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Create email headers
$headers .= 'From: '.$from."\r\n".
'Reply-To: '.$from."\r\n" .
'X-Mailer: PHP/' . phpversion();
// Compose a simple HTML email message
$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>';
// Sending email
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 发送邮件功能通过电子邮件接收用户的评论和反馈。