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 这通常用于添加额外的标题,例如 FromCcBcc 。附加标题应使用回车符和换行符-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 发送邮件功能通过电子邮件接收用户的评论和反馈。