【发布时间】:2019-10-19 22:42:22
【问题描述】:
我有一个联系表,用户在其中输入他们的个人信息和想要发送给我(管理员)的消息,会发生什么情况是我会收到一封包含他们的信息和消息的电子邮件,同时用户将收到一封电子邮件,说明他们的信息已成功发送。此时所有这些都有效,但问题是,消息仅在我强制发送时发送给用户,这意味着哦功能“addAddress”我输入了我想要发送的电子邮件地址,但我想发送给填写该表格的每个人,这不起作用,它只发送给我(管理员)
$sql = "INSERT INTO Mensagem (NomeM, EmailMen, Assunto, Mensagem) VALUES ('$NomeM', '$EmailMen','$Assunto', '$Mensagem')";
$res = $lig->query($sql);
if (isset($_POST['submit'])){
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->Host='smtp.gmail.com';
$mail->Porto = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure='tls';
$mail->Username='admin@gmail.com';
$mail->Password='***';
$mail->setFrom($_POST['EmailReser']);
$mail->addAddress('admin@gmail.com');
$mail->addReplyTo($_POST['EmailReser']);
$mail->isHTML(true);
$mail->Subject='New message from your website';
$mail->Body = "message from user";
if(!$mail->send()) {
$result="Something went wrong. Try again";
} else {
header('Location: index.php?cmd=home');
//======== User ========
$mail = new PHPMailer;
$mail->Host='smtp.gmail.com';
$mail->Porto = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure='tls';
$mail->Username='admin@gmail.com';
$mail->Password='***';
$mail->setFrom('admin@gmail.com');
$mail->addAddress($_POST['EmailReser']); // If i added 'user@gmail.com' it would work
$mail->addReplyTo('admin@gmail.com');
$mail->isHTML(true);
$mail->Subject='Your message was received';
$mail->Body = "message from admin";
if(!$mail->send()){
$result="Something went wrong. Try again";
} else{
header('Location: index.php?cmd=home');
}
}
}
【问题讨论】:
-
好吧,如果静态值有效,但
$_POST['EmailReser']在同一个地方无效 - 那么第一个猜测是,这个变量根本不包含您认为 i> 确实如此。所以做一个调试输出(使用var_dump)来验证。 -
Imran 提供了可以解决您问题的答案。但是,为请求指定以下选项
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only可能很有用 -
我做了,但没有任何改变,发送给管理员的电子邮件以同样的方式发送,用户仍然没有收到电子邮件
-
我应该在管理员端还是用户端插入该代码? @atoms
-
这里没有“管理端”和“用户端”。您有一个用户,提交一份表单 - 您想基于此发送两封电子邮件。因此,在您处理此表单数据的脚本中发送两封电子邮件。