
本文档将指导您如何使用 PHP 和 PHPMailer 库向多个用户发送电子邮件。我们将探讨如何修改现有的表单和 PHP 代码,以便可以接收多个电子邮件地址,并通过循环遍历这些地址,使用 PHPMailer 将邮件发送给所有收件人。本文将提供代码示例和注意事项,帮助您构建可靠的批量邮件发送功能。
接收多个电子邮件地址
要向多个用户发送电子邮件,首先需要修改 HTML 表单,使其能够接收多个电子邮件地址。 有两种常见的方法可以实现这一点:
- 使用多个输入框: 您可以添加多个电子邮件地址输入框,每个输入框都有唯一的名称,例如 email1、email2、email3 等。 这种方法简单易懂,但当需要发送的电子邮件数量不确定时,会比较麻烦。
- 使用数组形式的输入框: 您可以创建一个名称相同的输入框,但使用数组形式的名称,例如 email[]。 这样,用户可以动态地添加任意数量的电子邮件地址。
这里我们选择第二种方法,因为它更灵活。 修改后的 HTML 代码如下所示:
处理 PHP 中的多个电子邮件地址
在 PHP 中,您可以通过 $_POST['email'] 访问以数组形式提交的电子邮件地址。 现在,您需要修改 PHP 代码,循环遍历这些地址,并将它们添加到 PHPMailer 实例中。
立即学习“PHP免费学习笔记(深入)”;
nopCommerce 是一个由ASP.NET多层模式开发的开源电子商城系统,可以自行设置模板、配置灵活、功能强大,它内含一个目录前端和一个管理工具后端。前端包括用户注册、商品购买(可以进行评论)、投票、Blog等,后端有类别管理、产品管理、客户及角色管理、订单管理、纳税管理、国家(地区管理)、邮件发送、消息模板、新闻发布、blog管理,可以对列表数据进行XML导出。
修改后的 PHP 代码如下所示:
if($error == '')
{
require 'class/class.phpmailer.php';
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = '465';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'xxxxxxxxxxx';
$mail->SMTPSecure = 'ssl';
$mail->From = $_POST["email"][0]; // 使用第一个邮箱地址作为发件人
$mail->FromName = 'name';
// 循环添加收件人
foreach($_POST['email'] as $emailAddress){
$mail->AddAddress($emailAddress);
}
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = $_POST["subject"];
$mail->Body = $_POST["message"];
if($mail->Send())
{
$error = '';
}
else
{
$error = '';
}
$name = '';
$email = '';
$subject = '';
$message = '';
}关键修改:
- foreach 循环: 使用 foreach 循环遍历 $_POST['email'] 数组,将每个电子邮件地址存储在 $emailAddress 变量中。
- $mail->AddAddress($emailAddress): 在循环内部,使用 $mail->AddAddress() 方法将每个电子邮件地址添加到 PHPMailer 实例中,作为收件人。
- $mail->From = $_POST["email"][0]: 使用提交的第一个邮箱作为发送邮箱,实际应用中,应使用配置好的邮箱。
注意事项
- SMTP 服务器限制: 大多数 SMTP 服务器对每小时或每天可以发送的电子邮件数量有限制。 如果您需要发送大量电子邮件,请考虑使用专业的电子邮件营销服务。
- 反垃圾邮件策略: 避免被标记为垃圾邮件发送者,请确保您的电子邮件内容符合反垃圾邮件策略。 这包括使用清晰的主题行、包含退订链接、避免使用垃圾邮件触发词等。
- 错误处理: 添加适当的错误处理机制,以便在发送电子邮件失败时能够记录错误信息并通知管理员。
- 验证: 在将电子邮件地址添加到 PHPMailer 实例之前,请验证其格式是否正确。
- 安全: 不要在代码中硬编码 SMTP 用户名和密码。 将它们存储在配置文件中,并使用环境变量或安全的方式访问它们。
总结
通过修改 HTML 表单和 PHP 代码,您可以轻松地使用 PHP 和 PHPMailer 库向多个用户发送电子邮件。 记住要考虑 SMTP 服务器限制、反垃圾邮件策略、错误处理和安全性,以确保您的批量邮件发送功能可靠且安全。通过使用数组形式的输入框和 foreach 循环,您可以动态地处理任意数量的电子邮件地址,从而构建灵活的邮件发送系统。










