
本文档旨在指导开发者如何使用 php 的 `mail()` 函数向多个收件人发送电子邮件。我们将探讨如何正确地格式化收件人地址,以及如何避免常见的问题,确保邮件能够成功送达。本文档将提供清晰的代码示例,帮助你理解和应用这些技术。
使用 mail() 函数发送邮件到多个收件人
PHP 的 mail() 函数是一个内置函数,用于发送电子邮件。虽然它很简单,但可以灵活地配置以满足不同的需求,包括向多个收件人发送邮件。要实现这一点,关键在于正确地格式化 $to 参数,即收件人地址。
格式化收件人地址
mail() 函数的第一个参数 $to 接受一个字符串,其中包含一个或多个收件人的电子邮件地址。当需要发送给多个收件人时,可以使用逗号 , 分隔每个地址。
$to = "recipient1@example.com, recipient2@example.org, recipient3@example.net"; $subject = "邮件主题"; $message = "邮件内容"; $headers = "From: sender@example.com"; mail($to, $subject, $message, $headers);
在上面的例子中,recipient1@example.com、recipient2@example.org 和 recipient3@example.net 都将收到邮件。
完整示例
下面是一个更完整的例子,展示了如何设置邮件头,以及如何处理邮件发送结果:
立即学习“PHP免费学习笔记(深入)”;
注意事项
邮件头设置: 确保正确设置邮件头,包括 From、Reply-To 和 Content-type。Content-type 设置为 text/html 可以发送 HTML 格式的邮件。
安全问题: mail() 函数容易受到邮件头注入攻击。始终对用户输入进行验证和过滤,以避免恶意用户篡改邮件头。
邮件服务器配置: 确保 PHP 配置正确,并且已经配置了可用的邮件服务器(如 Sendmail 或 SMTP)。
垃圾邮件过滤器: 发送大量邮件时,可能会被垃圾邮件过滤器拦截。建议使用专业的邮件发送服务,它们通常有更好的信誉和更高的送达率。
换行符: 邮件头中的换行符必须使用 \r\n,而不是简单的 \n。
使用抄送 (CC) 和密送 (BCC)
除了直接在 $to 参数中列出所有收件人,还可以使用 Cc (抄送) 和 Bcc (密送) 邮件头来实现类似的效果。
- Cc (抄送): 收件人可以看到所有抄送地址。
- Bcc (密送): 收件人无法看到密送地址。
总结
使用 PHP 的 mail() 函数发送邮件给多个收件人非常简单,只需使用逗号分隔地址。然而,为了确保邮件能够成功送达,并避免安全问题,需要仔细配置邮件头,并考虑使用专业的邮件发送服务。理解和应用本文档中的示例和注意事项,可以帮助你更好地使用 mail() 函数,并构建可靠的邮件发送功能。










