php 中使用 mail 函数发送电子邮件需以下步骤:创建邮件函数对象,指定收件人、主题、正文和额外的标头信息。发送邮件,将标头信息和正文以 \n 分隔。检查发送状态,返回一个布尔值表示成功或失败。

PHP 函数如何发送电子邮件
在 PHP 中使用函数发送电子邮件非常简单。本教程将指导您发送电子邮件所需的步骤,并提供一个实战案例。
步骤
1. 创建邮件函数对象
要发送电子邮件,我们需要创建 PHP 的 mail() 函数对象。此函数需要四个参数:
- 收件人电子邮件地址
- 邮件主题
- 邮件正文
- 额外的标头信息(可选)
以下是一个示例:
立即学习“PHP免费学习笔记(深入)”;
$to = 'recipient@example.com'; $subject = 'Test Email'; $body = 'Hello World! This is a test email.';
2. 设置额外的标头信息(可选)
对于某些电子邮件客户端,设置额外的标头信息可以提高可信度。您可以使用 \r\n 将多行标头信息附加到邮件正文。
以下是一些常见的标头信息:
nopCommerce 是一个由ASP.NET多层模式开发的开源电子商城系统,可以自行设置模板、配置灵活、功能强大,它内含一个目录前端和一个管理工具后端。前端包括用户注册、商品购买(可以进行评论)、投票、Blog等,后端有类别管理、产品管理、客户及角色管理、订单管理、纳税管理、国家(地区管理)、邮件发送、消息模板、新闻发布、blog管理,可以对列表数据进行XML导出。
-
From:发件人的电子邮件地址 -
Reply-To:收件人可以回复的电子邮件地址 -
Content-Type:指定电子邮件正文的格式(例如,text/html)
以下是一个设置额外标头信息的示例:
$headers = "From: sender@example.com\r\n"; $headers .= "Reply-To: sender@example.com\r\n"; $headers .= "Content-Type: text/html\r\n";
3. 发送邮件
一旦您设置好邮件函数对象,就可以发送电子邮件了。使用 \n 分隔标头信息和邮件正文:
$success = mail($to, $subject, $body, $headers);
4. 检查发送状态
mail() 函数会返回一个布尔值,表示发送是否成功。您可以使用它来处理错误或显示成功消息:
if ($success) {
echo 'Email sent successfully!';
} else {
echo 'Failed to send email.';
}实战案例
发送带有附件的 HTML 格式的电子邮件:
$to = 'recipient@example.com'; $subject = 'Sending HTML Email with Attachment'; $body = 'Hello World! This is an HTML email.
'; $headers = "From: sender@example.com\r\n"; $headers .= "Reply-To: sender@example.com\r\n"; $headers .= "Content-Type: text/html\r\n"; // 附件路径 $attachment = 'path/to/attachment.txt'; // 附加文件 $boundary = uniqid(); $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=$boundary\r\n"; // 创建邮件正文 $multipart = "--$boundary\r\n"; $multipart .= "Content-Type: text/html\r\n\r\n"; $multipart .= $body . "\r\n"; // 添加附件 $multipart .= "--$boundary\r\n"; $multipart .= "Content-Type: application/octet-stream\r\n"; $multipart .= "Content-Disposition: attachment; filename=" . basename($attachment) . "\r\n"; $multipart .= "Content-Transfer-Encoding: base64\r\n\r\n"; $multipart .= chunk_split(base64_encode(file_get_contents($attachment))); $success = mail($to, $subject, $multipart, $headers);










