如何修改PHPMailer代码实现向多个邮箱地址发送邮件?
多邮箱同步发送邮件修改方案
一、调整index.php表单配置
你现有表单中已经预留了第二个收件邮箱的输入框,但存在两个小问题:输入框类型错误、字段命名易混淆,修改为如下代码即可:
<form id="contactus" method="post" action="send.php"> <input type="name" name="name" class="form-control" placeholder="姓名" required><br/><br/> <input type="email" name="email" class="form-control" placeholder="收件人1邮箱" required><br/><br/> <!-- 修改后的第二个邮箱输入框 --> <input type="email" name="email2" class="form-control" placeholder="Player 2的邮箱地址" required><br/><br/> <textarea name="message" class="form-control" placeholder="你的问题是什么?" required></textarea><br/><br/> <input type="hidden" name="phone2"> <button type="submit" class="btn btn-success">发送邮件</button> <br><br> </form>
二、修改send.php业务逻辑
1. 新增第二个邮箱的接收和校验逻辑
在原有参数接收代码下方新增第二个邮箱的接收代码,同时补充空值校验:
// 原有参数接收代码 $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING); $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); $message = filter_var($_POST['message'], FILTER_SANITIZE_STRING); // 新增:接收第二个邮箱 $email2 = filter_var($_POST['email2'], FILTER_SANITIZE_EMAIL); // 原有校验逻辑 if(empty($name)){ header("location: index.php?nouser"); exit(); } if(empty($email)){ header("location: index.php?noemail"); exit(); } // 新增:第二个邮箱空值校验 if(empty($email2)){ header("location: index.php?noemail2"); exit(); } if(empty($message)){ header("location: index.php?nomessage"); exit(); }
2. 添加第二个收件人
在PHPMailer的收件人配置部分,新增第二个邮箱的收件配置:
// 原有收件人1配置 $mail->addAddress($email); // 新增:添加第二个收件人 $mail->addAddress($email2);
3. 修复原有代码问题
- 你现有代码中邮件正文
$body里使用了未定义的变量$name2,会导致代码报错,可根据你的需求替换为$email2或者删除该变量 - 现有代码中跳转逻辑
header("Location: http://www.test-domain.com");放在了邮件发送代码前面,会导致邮件还没发送就跳转,需要把该行移动到$mail->send();之后,调整后代码如下:
// 原有代码 $mail->AltBody = strip_tags($body); // 先发送邮件 $mail->send(); // 再跳转页面 header("Location: http://www.test-domain.com");
内容的提问来源于stack exchange,提问作者programcode
相关产品推荐
相关产品推荐

