PHP 发送邮件

在本教程中,您将学习如何使用PHP mail()函数直接从脚本发送简单文本或HTML电子邮件。

PHP mail()函数

发送电子邮件消息对于Web应用程序是非常常见的,例如,当用户在您的网站上创建帐户时发送欢迎电子邮件,向您的注册用户发送新闻通讯,或通过网站的联系表获取用户反馈或评论,等等。

您可以使用PHP内置mail()函数从PHP应用程序以纯文本格式或格式化的HTML动态创建电子邮件消息并将其发送给一个或多个收件人。该函数的基本语法可以通过以下方式给出:

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

下表总结了此函数的参数。

参数描述
必需 - 以下参数是必需的
to收件人的电子邮件地址。
subject要发送的电子邮件的主题。此参数,即主题行不能包含任何换行符(\n)。
message定义要发送的消息。每行应以换行符LF(\n)分隔。行数不能超过70个字符。
可选 - 以下参数是可选的
headers通常用于添加额外的标头,例如“发件人”,“抄送”,“密件抄送”。附加标头应使用回车符和换行符CRLF(\r\n)分隔。
parameters用于传递其他参数。

发送纯文本电子邮件

使用PHP发送电子邮件的最简单方法是发送文本电子邮件。在下面的示例中,我们首先声明变量-收件人的电子邮件地址,主题行和邮件正文-然后将这些变量传递给mail()函数以发送电子邮件。

<?php
$to = 'maryjane@mail.com';
$subject = '求婚';
$message = '嗨,简,你愿意嫁给我吗?'; 
$from = 'peterparker@mail.com';
 
//发送邮件
if(mail($to, $subject, $message)){
    echo '您的邮件已成功发送。';
} else{
    echo '无法发送电子邮件。 请再试一次。';
}
?>

发送HTML格式的电子邮件

使用PHP发送文本消息时,所有内容将被视为简单文本。我们将改进该输出,并将电子邮件转换为HTML格式的电子邮件。

要发送HTML电子邮件,过程将相同。但是,这一次,我们需要提供其他标头以及HTML格式的消息。

<?php
$to = 'maryjane@mail.com';
$subject = '求婚';
$from = 'peterparker@mail.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>';
$message .= '<h1 style="color:#f40;">Hi Jane!</h1>';
$message .= '<p style="color:#080;font-size:18px;">Will you marry me?</p>';
$message .= '</html>';
 
//发送电子邮件
if(mail($to, $subject, $message, $headers)){
    echo '您的邮件已成功发送。';
} else{
    echo '无法发送电子邮件。 请再试一次。';
}
?>

注意:PHP mail()函数是PHP核心的一部分,但是您需要在计算机上设置一个邮件服务器以使其真正起作用。

在接下来的两章(PHP表单处理PHP表单验证)中,您将学习如何在您的网站上实现交互式联系表单,以使用此PHP发送邮件功能通过电子邮件接收用户的评论和反馈。