要解决这个问题,你需要确保表单发送电子邮件的服务器/域名与提交的电子邮件地址相匹配。以下是一个基本示例,使用PHP的邮件库PHPMailer:
<?php
use PHPMailer\PHPMailer\PHPMailer;
// 先获取表单数据
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// 配置邮件发送服务器和凭证
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'your_username';
$mail->Password = 'your_password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
// 设置发件人和收件人
$mail->setFrom('noreply@example.com', 'My Website');
$mail->addAddress('youremail@example.com', 'Your Name');
// 设置邮件主题和内容
$mail->Subject = 'New message from ' . $name . ' via my website';
$mail->Body = 'Name: '.$name.'<br>Email: '.$email.'<br>Message: '.$message;
// 发送邮件
if (!$mail->send()) {
echo 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>
需要注意的是,上面的代码中,$mail->setFrom()设置了发送人的电子邮件地址为noreply@example.com,但是显示名为“My Website”。这个邮件地址应该是你自己网站的电子邮件地址,不是用户提交的电子邮件地址。