【问题标题】:Why is contact form not sending email to client?为什么联系表格不向客户发送电子邮件?
【发布时间】: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


【解决方案1】:

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

那么,配置的邮箱是否正确?您可以使用您的个人地址向该地址发送电子邮件吗?

您告诉该电子邮件在您的个人地址上被视为垃圾邮件,也许其他地址也是如此,但该邮件不属于“垃圾邮件”文件夹,但不允许进入邮箱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2015-09-22
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2012-11-05
    相关资源
    最近更新 更多