
本文将介绍如何使用 PHP 和 PHPMailer 库向多个用户发送电子邮件。通过修改 HTML 表单以支持多个电子邮件地址输入,并在 PHP 后端使用循环遍历这些地址,可以轻松地将邮件发送给列表中的所有收件人。本文提供详细的代码示例,并讨论了相关的注意事项,帮助开发者构建可靠的批量邮件发送功能。
要允许用户输入多个电子邮件地址,我们需要修改 HTML 表单。一种常见的方法是使用数组形式的输入字段。例如,我们可以将 email 输入字段的 name 属性设置为 email[]。
<label>Enter Email Addresses</label> <input type="email" name="email[]" placeholder="Enter Email" /> <input type="email" name="email[]" placeholder="Enter Email" /> <input type="email" name="email[]" placeholder="Enter Email" />
用户可以根据需要添加更多输入字段,或者使用 JavaScript 动态添加/删除输入框。 重要的是,所有 email 输入框的 name 属性都必须设置为 email[],这样 PHP 才能将它们作为一个数组接收。
在 PHP 后端,我们需要修改代码来处理 $_POST['email'] 数组,并使用循环遍历这些地址,然后将每个地址添加到 PHPMailer 的收件人列表中。
立即学习“PHP免费学习笔记(深入)”;
if(isset($_POST["submit"])) {
// ... (其他表单验证代码) ...
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 = 'your_email@gmail.com'; // 替换为你的邮箱地址
$mail->Password = 'your_password'; // 替换为你的邮箱密码
$mail->SMTPSecure = 'ssl';
$mail->From = 'your_email@gmail.com'; // 替换为你的邮箱地址
$mail->FromName = 'Your Name';
// 循环遍历 email 数组并添加收件人
foreach($_POST['email'] as $emailAddress){
if (filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { // 验证邮箱格式
$mail->AddAddress($emailAddress);
} else {
$error .= '<p><label class="text-danger">Invalid email format: ' . htmlspecialchars($emailAddress) . '</label></p>';
}
}
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = $_POST["subject"];
$mail->Body = $_POST["message"];
if($mail->Send()) {
$error = '<label class="text-success">Thank you for contacting us</label>';
} else {
$error = '<label class="text-danger">There is an Error: ' . $mail->ErrorInfo . '</label>';
}
// ... (重置表单字段) ...
}
}代码解释:
通过修改 HTML 表单和 PHP 后端代码,我们可以轻松地使用 PHP 和 PHPMailer 向多个用户发送电子邮件。 记住,正确配置 SMTP 设置、验证电子邮件地址、处理错误和遵守反垃圾邮件规则至关重要。在实际应用中,还需要考虑邮件发送频率限制和安全性等问题。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号