繁体   English   中英

PHP没有发送邮件

[英]PHP isn't sending mail

我正在使用Linode VPS建立一个网站。

我正在使用以下方式安装Apache和PHP:

apt-get install apache2 php

这是HTML表单:

  <form action="" class="form-horizontal" method="post">
    <div class="form-group">
      <label class="col-sm-2 control-label">Name</label>
      <div class="col-sm-10">
        <input type="email" class="form-control" name="name" placeholder="Name">
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">Email</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="email" placeholder="Email">
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">IP</label>
      <div class="col-sm-10">
        <input type="text" class="form-control" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" disabled>
      </div>
    </div>
    <div class="form-group">
      <label class="col-sm-2 control-label">Message</label>
      <div class="col-sm-10">
        <textarea class="form-control" rows="4" name="message"></textarea>
      </div>
    </div>
    <div class="form-group">
      <div class="col-sm-offset-2 col-sm-10">
        <button type="submit" class="btn btn-default">Submit</button>
      </div>
    </div>
  </form>

这是PHP尝试发送邮件的方法:

<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

if(isset($_POST['email'])) {
  $email_to = "webmaster@domain.com";
  $email_subject = "Contact Form";

  $name = $_POST['name'];
  $email = $_POST['email'];
  $ip = $_POST['ip']; 
  $message = $_POST['message']; 


  $email_message  = "Name: ".$name."\n";
  $email_message .= "Email: ".$email."\n";
  $email_message .= "IP: ".$ip."\n";
  $email_message .= "Message: ".$message."\n";

  $headers = 'From: '.$email."\r\n".
             'Reply-To: '.$email."\r\n" .
             'X-Mailer: PHP/' . phpversion();

mail($email_to, $email_subject, $email_message, $headers);  
?>
<div class="panel panel-success">
  <div class="panel-body">
    Message sent.
  </div>
</div>
<?php

}

?>

问题是没有收到电子邮件,也没有电子邮件被标记为垃圾邮件。

我添加了PHP错误报告:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

不会报告任何错误。

首先,您应该说出在服务器上配置了哪个邮件程序。 麻烦我检查一下该邮件程序和正确的路径是否在php.ini配置文件中指出。 只是一个起点...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM