【发布时间】:2023-03-19 10:37:01
【问题描述】:
我在我的网站上设置了一个联系表格,人们可以使用它给我发送电子邮件。该表格允许他们留下他们的电子邮件,以便我可以以某种方式回复他们。但是由于某种原因,无论留下什么电子邮件,系统似乎总是认为是我将电子邮件发送到我自己的电子邮件地址的人,我猜这是由于 $mail->Username 代码行是我?虽然 from 应该设置这个,但即使我直接在代码中输入 from 地址似乎也不会。
这是我在我的网站上用来提交表单本身的表单。
<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>
表单提交时要执行的php代码是这样的。
<?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';
}
?>
任何帮助将不胜感激,谢谢。
【问题讨论】: