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发送邮件功能通过电子邮件接收用户的评论和反馈。