PHPMailer如何实现向用户和管理员分别发送内容不同的邮件
PHP使用PHPMailer向两个不同收件人发送不同内容邮件的实现方法
实现逻辑非常简单,公共的SMTP配置复用,每次发送不同邮件前清空上一次的收件人配置,分别设置对应邮件的收件人、主题、内容后调用发送方法即可。
注意事项
- 原有代码存在语法错误:变量赋值、
send()方法调用结尾缺少分号,修正后才可正常运行 - 每次发送新邮件前必须调用
clearAddresses()清空历史收件人,避免邮件错发 - 两封邮件的主题、内容完全独立,可按需自定义配置
完整实现代码
<?php require_once('phpmailer/PHPMailerAutoload.php'); $mail = new PHPMailer; $mail->CharSet = 'utf-8'; // 接收表单参数 $name = $_POST['name']; $email = $_POST['email']; // 公共SMTP配置,只需要配置一次 $mail->isSMTP(); $mail->Host = 'smtp.mail.ru'; $mail->SMTPAuth = true; $mail->Username = 'pmewilberries@mail.ru'; $mail->Password = '123456789456'; $mail->SMTPSecure = 'ssl'; $mail->Port = 465; $mail->setFrom('pmewilberries@mail.ru'); // ---------------------- 第一封:发送给提交表单的用户 ---------------------- $mail->addAddress($email); $mail->Subject = 'Заявка на участие в интенсиве Wildberries'; // 自定义用户邮件内容 $user_body = "您好".$name.",您的Wildberries intensiv报名申请我们已经收到,我们会尽快与您联系~"; $mail->msgHTML($user_body); // 发送第一封,可加判断处理发送失败的情况 if (!$mail->send()) { echo '发送给用户的邮件失败: ' . $mail->ErrorInfo; } // ---------------------- 第二封:发送给管理员 ---------------------- // 清空上一次的收件人列表 $mail->clearAddresses(); // 填写管理员实际收件邮箱 $mail->addAddress('admin@yourdomain.com'); // 自定义管理员邮件主题 $mail->Subject = '新的Wildberries intensiv报名申请'; // 自定义管理员邮件内容,可带上用户提交的信息 $admin_body = "有新用户提交了报名申请:<br>用户姓名:".$name."<br>用户邮箱:".$email; $mail->msgHTML($admin_body); // 发送第二封 if (!$mail->send()) { echo '发送给管理员的邮件失败: ' . $mail->ErrorInfo; } ?>
内容的提问来源于stack exchange,提问作者Akaev Dzhalal
相关产品推荐
相关产品推荐

