【发布时间】:2013-05-05 02:51:57
【问题描述】:
当我将电子邮件更改为我的个人 hotmail 地址时,该邮件会出现 - 尽管它在我的垃圾邮件文件夹中。但是当我将其更改为客户的电子邮件时,消息根本没有出现。有人知道我该如何解决这个问题吗?
这是表单的 PHP:
<?php
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$address = $_POST['address'];
$number = $_POST['number'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = 'Message from Reef Cleaning solutions website';
$to = 'info@address.co.uk';
if (empty($name) || empty($address) || empty($number) || empty($email) || empty($subject) || empty($message)) {
if (empty($name))
$error['name'] = "Please enter your Full Name";
if (empty($address))
$error['address'] = "Please enter your address";
if (empty($number))
$error['number'] = "Please enter a contact number";
if (empty($email))
$error['email'] = "Please enter a valid Email Address";
if (empty($message))
$error['message'] = "Please write a message, enquiries or other concerns above";
}
else { //if not empty
$body = "
Name: $name\r\n
Address: $address\r\n
Number: $number\r\n
Email: $email\r\n
Message: $message
";
$headers="From: {$email}\r\nReply-To: {$email}"; //create headers for email
if(mail($to,$subject,$body,$headers))
{
$success = "mail has been sent";
}
else
{
echo "error during sending mail";
}
}
}
?>
这是 HTML
<form method="POST">
<table border="1">
<tr>
<td><label for="name" class="g">Name</label></td>
<td><input id="name" name="name" type="text" autofocus required /></td>
</tr>
<tr>
<td><label for="address" class="g">Address</label></td>
<td><textarea rows="3" id="address" name="address" cols="50"></textarea></td>
</tr>
<tr>
<td><label for="number" class="g">Contact number</label></td>
<td><input id="number" name="number" type="text" autofocus required /></td>
</tr>
<tr>
<td><label for="email" class="g">Email</label></td>
<td><input id="email" name="email" type="text" placeholder="example@domain.com" autofocus required /></td>
</tr>
<tr>
<td><label for="message" class="g">Enquiry</label></td>
<td><textarea rows="3" id="message" name="message" required cols="50"></textarea></td>
</tr>
</table>
<input type="submit" value="Submit" name="submit" />
<div id="message-sent">
<?php
if ($success) {
echo $success;
}
?>
</div>
</form>
【问题讨论】:
-
如果它出现在您的垃圾邮件文件夹中,则它正在被发送;因此它是一个问题客户端
-
我认为他的意思是,如果他将电子邮件发送到 hotmail 帐户,则电子邮件将被发送并进入 hotmail 的垃圾邮件文件夹。如果他将电子邮件发送到 info@address.co.uk,则不会发送电子邮件。但是..你有什么错误吗?我的意思是,您的客户发送并拒绝了电子邮件,或者根本没有发送邮件?你至少能检测到吗? HTML 表单很好,甚至代码看起来也不错。
-
我正在使用 outitgoes.com 测试客户电子邮件地址,但此收件箱或垃圾邮件文件夹中没有显示任何内容。但是,当我在我的个人 hotmail 上测试它时,它确实出现在我的电子邮件中。
-
只是为了澄清上帝的声明 - 如果唯一改变的是收件人地址,那么它与 PHP/HTML 无关。如果您查看有关 php 的 mail() 命令的常见问题,那么 PHP 很少出现问题 - 通常是邮件配置。您是否检查过您的 MTA 日志/退回邮件?
-
您在此 outitgoes.com 中是否有垃圾邮件文件夹?除此之外,您确定您进行了完全相同的测试吗?我的意思是,完全相同的对象和电子邮件内容?请务必遵守所有其他关于主题和内容的约束 php.net/manual/en/function.mail.php。
标签: php html forms contact spam