/ / PHPMailer '$ mail-> From = $ _POST [' email '] funktioniert nicht - php, forms, phpmailer

PHPMailer '$ mail -> From = $ _POST [' email '] funktioniert nicht

Ich habe auf meiner Website ein Kontaktformular eingerichtetLeute können mich per E-Mail kontaktieren. Das Formular ermöglicht es ihnen, ihre E-Mail zu hinterlassen, damit ich irgendwie auf sie zurückkommen kann. Aus irgendeinem Grund scheint das System jedoch immer zu glauben, dass ich derjenige bin, der die E-Mail an meine eigene E-Mail-Adresse gesendet hat. Ich vermute, dies liegt an der Codezeile $ mail-> Benutzername, die ich bin ? Obwohl der Absender dies einstellen sollte, scheint es nicht zu funktionieren, auch wenn ich die Absenderadresse direkt in den Code eingebe.

Dies ist das Formular, das ich auf meiner Website verwende, um das Formular selbst einzureichen.

<form id="contact-form" name="contact-form" method="post" action="contact-form.php" enctype="application/x-www-form-urlencoded">

<input type="text" placeholder="Name" name="name" required="true">
<i class="fa fa-envelope"></i><input type="email" placeholder="Email" name="email" required="true">
<input type="text" placeholder="Subject" name="subject" required="true">
<textarea placeholder="Message" name="message" rows="7" required="true"></textarea>
<button type="submit" name="submit" value="submit">Send</button>
<button type="reset" value="reset">Reset</button>
</form>

Der Code für die PHP ausgeführt werden, wenn das Formular eingereicht wird, ist dies.

<?php
require "assets/PHPMailer/PHPMailerAutoload.php";

$mail = new PHPMailer;

$mail->SMTPDebug = 3;                                             // Enable verbose debug output

$mail->isSMTP();                                                    // Set mailer to use SMTP
$mail->Host = "smtp.live.com";                                      // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                                             // Enable SMTP authentication
$mail->Username = "myemail@hotmail.co.uk";                      // SMTP username
$mail->Password = "mypassword";                                  // SMTP password
$mail->SMTPSecure = "tls";                                          // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                                  // TCP port to connect to

$mail->From = $_POST["email"];
$mail->addAddress("myemail@hotmail.co.uk", $_POST["name"]);    // Add a recipient
$mail->addReplyTo("info@example.com", "Information");

$mail->isHTML(true);                                                 // Set email format to HTML

$mail->Subject = $_POST["subject"];
$mail->Body    = $_POST["message"];
$mail->AltBody = $_POST["message"];

if(!$mail->send()) {
echo "Message could not be sent.";
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
?>

Jede Hilfe wäre sehr dankbar, danke.

Antworten:

0 für die Antwort № 1

Bei einigen Systemen können Sie nur ein von nicht verwendenadresse das ist alles andere als deine eigene als fälschungssichere maßnahme - denn mache keinen fehler, was du versuchst ist, ihre adresse zu fälschen! Es ist auch wahrscheinlich, dass Probleme mit Personen auftreten, die SPF verwenden, daher sollten Sie dies wirklich nicht versuchen.

In Google Mail können Sie bestimmte Aliase festlegen oder Ihre eigene Domain verwenden.

reply-to ist wahrscheinlich die praktischste Lösung dafür, oder stellen Sie einfach einen mailto-Link im Nachrichtentext bereit.


0 für die Antwort № 2

Ich denke du musst nicht so tun als ob $mail->From = $_POST["email"]; dass jemand dir da so eine email geschickt hatSie können sehen, dass es nicht funktioniert. Wenn Sie versuchen, eine E-Mail von jemandem an sich selbst zu senden, nur um die Möglichkeit zu haben, die Schaltfläche "Antworten auf" zu drücken und an diese Person zu schreiben, verwenden Sie:

$mail->AddReplyTo($_POST["email"]);

E-Mails werden von Ihrer Mailbox an Ihre Mailbox gesendet, aber Sie werden auf E-Mails des Benutzers antworten.