为什么联系表单不发送电子邮件给客户?

问题描述:

当我将电子邮件更改为我的个人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 = '[email protected]'; 

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="[email protected]" 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> 
+3

如果它出现在垃圾邮件文件夹中,它将被发送;因此它的问题客户端 – Ryan 2013-05-10 12:11:57

+0

我想他是说如果他发送电子邮件到一个hotmail帐户的电子邮件发送和进入垃圾邮件文件夹在Hotmail。如果他将电子邮件发送到[email protected],则不会发送电子邮件。但是..你有什么错误吗?我的意思是,电子邮件被您的客户发送和拒绝,或邮件根本不发送?你至少能够检测到? HTML表单很好,即使代码看起来不错。 – Madthew 2013-05-10 12:14:40

+0

我正在使用outitgoes.com测试客户端电子邮件地址,并且此收件箱或垃圾邮件文件夹中未显示任何内容。 但是,当我在我的个人hotmail上测试它时,它确实出现在我的电子邮件中。 – 2013-05-10 12:17:04

如果您收到您的电子邮件消息,它不是从PHP代码中的问题,因为它成功发送邮件。

那么,配置的电子邮件是否正确?你可以用你的个人地址发送电子邮件到这个地址吗?

你告诉该电子邮件被视为对您的personnal地址的垃圾邮件,也许是这个其他的地址同样的事情,但该消息不落的“垃圾邮件”文件夹,但不能进入邮箱。